firstfloorsoftware / xcc

XAML Conditional Compilation
Microsoft Public License
58 stars 16 forks source link

Does Not Compile in Xamarin Studio - Xamarin Forms #4

Closed MobileDan closed 8 years ago

MobileDan commented 9 years ago

Thank you for XCC, it's very useful!

I am not sure if you intended to support Xamarin Studio or not. Xamarin development is supported in Visual Studio and Xamarin Studio. I'd like to use XCC in a Xamarin Forms project and use both Visual Studio and Xamarin Studio (on the Mac for iOS).

I installed XCC successfully via Visual Studio in a Xamarin.Forms project to remove design time properties from XAML. In Xamarin Studio the project does not compile once the XCC nuget package is added (before adding anything to the csproj file)

This is the compile error...

Error building target GenerateXaml: Unable to parse condition "%(ClCompile.PreprocessorDefinitions) != ''" : Missing closing parenthesis in condition %(ClCompile.PreprocessorDefinitions) != ''

This warning also appears..

Warning: Target 'MarkupCompilePass1', not found in the project

I tried removing the offending line from Xcc.targets since the comment stated it was "..for Visual C++ projects". This addressed the error but not the warning. The project ran but design time properties were not removed from XAML files as they were for the same project in Visual Studio.

JonathanYates commented 9 years ago

I'm experiencing the same issue. It would be great if this could be fixed.

mahabaleshwarhnr commented 9 years ago

I am also facing same problem. i have one more query. is XCC supported to PCL project?

PenaPP commented 9 years ago

Same problem here :(

JonathanYates commented 9 years ago

Given the lack of rely or updates I suspect this will never be resolved. I've therefore committed myself to Visual Studio only.

jamesmontemagno commented 8 years ago

Pre-compiled XAML in Xamarin.Forms is now a feature: https://forums.xamarin.com/discussion/38729/xamarin-forms-1-4-3-pre2-released/p1

azchohfi commented 8 years ago

@jamesmontemagno Pre-compiled XAML are awesome, but we still can't use d:DesignInstance (for example). XCC provides this, but it's not working when compiling on MacOS, only Windows (VS2015).

kozw commented 8 years ago

@jamesmontemagno xcc is a xaml pre-processor, not a pre-compiler.

The Target 'MarkupCompilePass1' warning is fixed in xcc 1.0.8

XCC works on windows only, maybe someday on macos

adammeaney commented 8 years ago

Could we readdress this? I heartily enjoy the use of the DataContext DesignInstance markup, but cannot use it without having the ability to compile it in XS.

Its not as though I need it to let me use the Autocomplete it offers in XS, just to run the application like normal.

What part of this is stopping use exactly in XS? Is it the fault of some part of the Xamarin Forms build, or this component?

KRA2008 commented 7 years ago

I'm also really interested in getting this working on the Mac, actually not so that I can build in Xamarin Studio on a Mac, but so I can do CI with TeamCity on a windows machine and a mac build agent. I'm able to use nuget and either xbuild or mdtool to build the thing but it always craps out with the same error quoted in the first post.

Can I really be the first person to ever use XCC and CI?

It's really frustrating to me because it seems like there has to be a workaround that Visual Studio itself is using in normal building, otherwise I wouldn't be able to build for iOS at all. Any ideas?

tossingc commented 7 years ago

@KRA2008 We have CI set up in VSTS with a project using XCC. We are performing the build on a Windows machine using msbuild and passing the below build arguments to connect to the Xamarin Mac Agent during the build:

/p:ServerAddress=$(MacBuildMachineIPAddress) /p:ServerUser=$(MacBuildMachineUsername) /p:ServerPassword=$(MacBuildMachinePassword)

KarolStosik commented 7 years ago

@KRA2008 We have a TeamCity step. It looks for all .xaml files, and removes unwanted attributes from root elements. Then it removes from "*.csproj" file line with "packages\xcc" and from file "packages.config" file line with "id="xcc""

It can be an .exe file or anything you want. In our case it is part of our FAKE (F# make) script.