Unfortunately, we don't have a .Net 3.5-compatible NAnt distribution
yet, but it's trivial to get the latest version (.85) working with
.Net 3.5 and a Visual Studio 2008 solution. Open up you nant.exe
config file, and add the following framework node just below your net-2.0 node. Not much of a change, and it's working well for me.
<framework name="net-3.5"
family="net"
version="3.5"
description="Microsoft .NET Framework 3.5"
runtimeengine=""
sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}"
frameworkdirectory="${path::combine(installRoot, 'v3.5')}"
frameworkassemblydirectory="${path::combine(installRoot, 'v2.0.50727')}"
clrversion="2.0.50727">
<task-assemblies>
<!-- include .NET specific assemblies -->
<include name="tasks/net/*.dll" />
<!-- include .NET 2.0 specific assemblies -->
<include name="tasks/net/2.0/**/*.dll" />
<!-- include Microsoft.NET specific task assembly -->
<include name="NAnt.MSNetTasks.dll" />
<!-- include Microsoft.NET specific test assembly -->
<include name="NAnt.MSNet.Tests.dll" />
</task-assemblies>
<project>
<readregistry property="installRoot"
key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
hive="LocalMachine" />
<readregistry property="sdkInstallRoot"
key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0"
hive="LocalMachine"
failonerror="false" />
</project>
<tasks>
<task name="csc">
<attribute name="exename">csc</attribute>
<attribute name="supportsnowarnlist">true</attribute>
<attribute name="supportswarnaserrorlist">true</attribute>
<attribute name="supportskeycontainer">true</attribute>
<attribute name="supportskeyfile">true</attribute>
<attribute name="supportsplatform">true</attribute>
<attribute name="supportslangversion">true</attribute>
</task>
<task name="vbc">
<attribute name="exename">vbc</attribute>
<attribute name="supportsdocgeneration">true</attribute>
<attribute name="supportsnostdlib">true</attribute>
<attribute name="supportsnowarnlist">true</attribute>
<attribute name="supportskeycontainer">true</attribute>
<attribute name="supportskeyfile">true</attribute>
<attribute name="supportsplatform">true</attribute>
<attribute name="supportswarnaserrorlist">true</attribute>
</task>
<task name="jsc">
<attribute name="exename">jsc</attribute>
<attribute name="supportsplatform">true</attribute>
</task>
<task name="vjc">
<attribute name="exename">vjc</attribute>
<attribute name="supportsnowarnlist">true</attribute>
<attribute name="supportskeycontainer">true</attribute>
<attribute name="supportskeyfile">true</attribute>
</task>
<task name="resgen">
<attribute name="exename">resgen</attribute>
<attribute name="supportsassemblyreferences">true</attribute>
<attribute name="supportsexternalfilereferences">true</attribute>
</task>
<task name="al">
<attribute name="exename">al</attribute>
</task>
<task name="delay-sign">
<attribute name="exename">sn</attribute>
</task>
<task name="license">
<attribute name="exename">lc</attribute>
<attribute name="supportsassemblyreferences">true</attribute>
</task>
<task name="ilasm">
<attribute name="exename">ilasm</attribute>
</task>
<task name="ildasm">
<attribute name="exename">ildasm</attribute>
</task>
</tasks>
</framework>
Next, change the following in your NAnt build:
<property name="nant.settings.currentframework" value="net-3.5" />