2009-07-28 20 views

答えて

23

NAntContribは、.NET Framework V2.0を前提としています。 .NET 3.5を使用する場合は、MsBuild.exeを直接呼び出す必要があります。新しいバージョンの.NETにアップグレードするときは、MSBuildPathプロパティを変更するだけで済みます。ここ

の例です:.NETの異なるバージョンの

<property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"/>  
<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> 

MSBuildPath

  • 2.0、3.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\MSBuild.exe
  • 3.5 C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe
  • 4、4.5、4.5.1であります、4.5.2 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
ビット・ビルドの場合

Framework64コメントのいくつかのフォローアップ

更新 Frameworkに、value属性は何のスペースを持っていないパラメータに使用される変更。 lineは、スペースのために区切る必要のあるパラメータに使用されます。それ以外の場合、アプリケーションはスペースを入力の最後として使用します。

+0

うわー、おかげです。 NAntContribがそれほど遅れているとは決して想像もしませんでした。 – keithm

+7

-1 .NET 3.5ではを使用できます。 NAntとNAntContribの最新ナイトリーを持っていることを確認してください(NAnt Nightly 20090130とNAntContrib Nightly 20090201)。 –

+0

私はNAntの新人です。 argの意味について少し混乱しています。 arg値 msbuildを扱う場合。 誰かが私に説明することができますが、ドキュメンテーションはまだ私には分かりません。 – sheir

2

は、ここで簡単なターゲット

<target> 

    <loadtasks assembly="${nant::get-base-directory()}/../../nantcontrib-0.85/bin/NAnt.Contrib.Tasks.dll" /> 

    <msbuild project="${filepath.root}/yourproject.csproj" verbose="true">  
      <arg value="/p:Platform=${build.platform}" /> 
      <arg value="/t:Rebuild" /> 
      <arg value="/p:OutputPath=${build.dir}/bin/" /> 
     </msbuild> 

</target> 
関連する問題