2010-08-17 78 views
0

我想用visual studio 2008,.net 3.5項目使用0.90。 nant腳本正在被團隊城市調用。這裏沒什麼太複雜的。Nant拒絕使用.Net 3.5

<?xml version="1.0"?> 
<project name="IPSA System" default="build" basedir="."> 
    <property name="nant.settings.currentframework" value="net-3.5"/> 
    <msbuild project="FS.IPSA.WebAdmin\FS.IPSA.WebAdmin.csproj"> 
    <arg value="/property:TeamOutPath=Release\FS.IPSA.WebAdmin" /> 
    <property name="TeamOutPath" value="Release\FS.IPSA.WebAdmin" /> 
    </msbuild> 
</project> 

我遇到的問題是nant堅持要求.net 2.0編譯器而不是3.5。我認爲將nant.settings.currentframework值放入腳本應該強制框架版本。這似乎並非如此。還有什麼可能導致這個問題?

回答

0

最終事實證明,惡性不casuing的問題,它調用的MSBuild正確的版本,但的MSBuild打電話CSC的版本錯誤。可執行程序。我沒有跟蹤它爲什麼這樣做,但它看起來像是msbuild,而不是nant。

1

也許msbuild任務無法構建vs.net 2008解決方案(例如調用msbuild.exe的錯誤版本)。關於使用這樣的事情

什麼:

<!-- msbuild from .net 2.0 is unable to build vs.net 2008 solutions. Let's try to find .net 3.5 version of msbuild -->  
    <property name ="msbuild.exe" value="msbuild"/> <!-- default--> 
    <property name="windows.dir" value="${environment::get-variable('windir')}"/> 
    <property name="net3.5.dir" value="${windows.dir}/Microsoft.NET/Framework/v3.5"/> 
    <if test="${directory::exists(net3.5.dir)}"> 
     <property name="msbuild.exe" value="${net3.5.dir}/msbuild.exe"/> 
    </if> 

    <!-- current nant msbuild task is unable to build VS.NET 2008 solutions --> 
    <!-- let's try run correct msbuild.exe via the exec task --> 
    <exec program ="${msbuild.exe}" verbose="true"> 
     <arg value="/property:TeamOutPath=Release\FS.IPSA.WebAdmin" /> 
     <arg value="FS.IPSA.WebAdmin\FS.IPSA.WebAdmin.csproj"/> 
    </exec>