2012-06-18 102 views
0

nant中的配置設置在哪裏設置要使用哪個版本的MSBuild?NAnt MSBuild版本

當需要使用4.0時,Nant希望使用3.5。

+0

爲什麼不直接使用MSBuild? – KMoraz

回答

1

幾年前,我寫了一篇博客文章,解釋瞭如何利用您的NAnt構建腳本中的任何版本的MSBuild。本質上,您將使用<exec>節點來調用安裝在計算機上的MSBuild。

http://enterpriseyness.com/2009/12/continuous-integration-with-cruise-control-net-nant/

<target name=」build」> 
    <exec program=」${MSBuildPath}」> 
    <arg line=’」${SolutionFile}」‘ /> 
    <arg line=」/property:Configuration=${SolutionConfiguration}」 /> 
    <arg value=」/target:Rebuild」 /> 
    <arg value=」/verbosity:normal」 /> 
    <arg value=」/nologo」 /> 
    <arg line=’/logger:」C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll」‘/> 
    </exec> 
</target> 
0

您還可以創建一個惡性的框架結構。如果您編輯NAnt.exe.config文件,請使用它的所有子元素複製其中一個<framework>元素。將frameworkdirectory更改爲使用要使用的MSBuild的版本號。您可以查看其他<framework>元素的正確用法。例如,如果你想有「網3.5」 <framework>元素中使用的MSBuild 4.0只是改變了複製<framework>開放元素的樣子:

<framework 
    name="net-3.5-msbuild-4.0" 
    family="net" 
    version="3.5" 
    description="Microsoft .NET Framework 3.5 with MSBuild 4.0" 
    sdkdirectory="${sdkInstallRoot}" 
    frameworkdirectory="${path::combine(installRoot, 'v4.0.30319')}" 
    frameworkassemblydirectory="${path::combine(installRoot, 'v2.0.50727')}" 
    clrversion="2.0.50727" 
    clrtype="Desktop" 
    vendor="Microsoft" 
    ><!-- Rest of framework contents here --></framework> 

注意在frameworkdirectory屬性不同的版本號。

然後指定要在NAnt中使用的框架。

<property name="nant.settings.currentframework" value="net-3.5-msbuild-4.0" />