2009-07-28 17 views

cevap

23

NAntContrib, .NET Framework V2.0'ı varsayar. .NET 3.5 kullanmak isterseniz, doğrudan MsBuild.exe'yi çağırmanız gerekir. .NET'in yeni sürümlerine yükselttiğinizde, yalnızca MSBuildPath özelliğini değiştirmeniz gerekir. İşte

bir örnek:

<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> 

.NET farklı sürümleri için değer MSBuildPath olan

  • 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
bit kurmak için

, Framework64 yorumların bazıları takibi

Güncelleme Framework için, value özellik boşluk var parametreleri için kullanılır değiştirin. line, boşluklardan dolayı sınırlandırılması gereken parametreler için kullanılır. Aksi takdirde, uygulama alanı girişin sonu olarak kullanır.

+0

Vay, sayesinde. NAntContrib'ın çok geride olduğunu hiç düşünmemiştim. – keithm

+7

-1 .NET 3.5 ile 'u kullanabilirsiniz. En son NAnt ve NAntContrib gecelerine sahip olduğunuzdan emin olun (test edilmiş NAnt Nightly 20090130 ve NAntContrib Nightly 20090201). –

+0

Ben NAnt için yeni ve msbuild ile uğraşırken arg hattı arg değeri hakkında biraz kafam karıştı. Birisi bana belgenin hala benim için bir şeyleri temizlememesiyle farkı anlatabilir. – sheir

2

Burada basit bir hedef

<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>