Toolset agnostic build server and Silverlight projects
- by Marko Apfel
Problem Normally I try to have my continuous integration as most a possible toolset free to ensure that no local stuff could have an impact to my build. My Silverlight app references a special compile target in a folder outside my developer tree: <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
So I copied the stuff from this folder to a local one and changed the call to this target in my csproj:
<Import Project="..\..\..\tools\WebApplications\Microsoft.WebApplication.targets" />
And now Visual Studio Conversion Wizard welcomes my with this:
Solution
Regardless of which line I write – this conversion comes back again and again, if the line has another form than
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
So it seems that there is no simple way to change this behaviour.
Workaraound
I must accept, that this line must be in the csproj and to run the build the toolset must be copied to the build server at the correct location.
So go to your development machine where Visual Studio is installed and copy the folder “C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications” to your build server at the equivalent location.
Xmas wishes to Microsoft:
Please provide technologies to let us developers bundle all needed stuff for a project in one developer tree. It should be possible that one checkout starts us up! No additional installations regardless whether it is a developing machine or dedicated build or continuous integration server.
Silverlight is only one example, code analysis configurations could also be terrible and much more …