5
votes

How do I need to indicate to the msbuild task in my nant script that it should use .net 4.0 rc?

2
why is there an msbuild task in your nant script? Is you are using msbuild, why would you do it that way around?Mitch Wheat
You can use NAnt to handle the overall project automation tasks (e.g. running tests, running analyses, versioning, packaging...) and delegating to MSBuild for compilation.Grant Palin
Grant is correct, Nant is doing the build, running the test, running ncover, and then handling some database scripting.ctrlalt313373

2 Answers

4
votes

I think the latest NAnt/NAntContrib defaults to .NET 3.5, so you'll have to change that to 4.0. There is a NAnt property to handle that (<property name="nant.settings.currentframework" value="net-4.0" />), which should go near the top of your NAnt build file.

Next, you'll need to go into your NAnt's configuration file and add the 4.0 node, so that NAnt (and by extension NantContrib) are aware of the new CLR version.

1
votes

The first option is to change the executable that MSBuild task uses. According to the doco this is a framework property so you would need to change it in the main nant config file rather than in you're individual script, and you would have to do it on every machine you plan on building the script on.

The other option is to use the exec task instead. This question and answer should help with that.

EDIT: Forgot to mention the directories MSBuild is in. To change versions just use a different MSBuild.

2.0: %windir%\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe
3.5: %windir%\Microsoft.NET\Framework\v3.5\MSBuild.exe
4.0b2: %windir%\Microsoft.NET\Framework\v4.0.21006\MSBuild.exe