On one of our projects we are using Visual Studio 2008 Team Foundation Server, and CruiseControl.NET with MSBuild to aid in the deployments to our test website location.
If I get some time I may put a tutorial into a blog post as to how this was set up.
This setup worked fine until we upgraded our client machines, and the server which is running CruiseControl.NET, to use Visual Studio 2010. Following this upgrade CruiseContol.NET would fail to successfully build the solution. The server log for the project would display the following errors.
MSB3088: Could not read state file "obj\Debug\ResolveAssemblyReference.cache". Unable to find assembly 'Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. MSB4064: The "Retries" parameter is not supported by the "Copy" task. Verify the parameter exists on the task, and it is a settable public instance property. MSB4063: The "Copy" task could not be initialized with its input parameters.
This was resolved by backing up and then modifying the file named Microsoft.WebApplication.targets at the following location on the server on which CruiseControl.NET is installed:
C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications
(The above location may be different depending upon where Visual Studio 2010 is installed on the server on which CruiseControl.NET is installed)
In this file the lines containing the following strings were removed in all the locations at which they were found:
Retries=”$(CopyRetryCount)”
RetryDelayMilliseconds=”$(CopyRetryDelayMilliseconds)”
Following this change CruiseControl.NET was able to build the solutions successfully as it did prior to the upgrade to Visual Studio 2010.
March 24, 2011
In VS 2010, OutDir appears to be in favor of OutputPath. I inferred this from looking at my new VS 2010 project contents.