2009-07-28 21 views

Trả lời

23

NAntContrib giả định .NET Framework V2.0. Nếu bạn muốn sử dụng .NET 3.5, bạn sẽ cần gọi trực tiếp MsBuild.exe. Khi bạn nâng cấp lên phiên bản mới của .NET, bạn chỉ cần sửa đổi thuộc tính MSBuildPath.

Dưới đây là một ví dụ:

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

Giá trị MSBuildPath cho các phiên bản khác nhau của .NET là

  • 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

Đối với một 32-bit xây dựng, thay đổi Framework64 để Framework

Cập nhật Theo dõi trên một số ý kiến, thuộc tính value được sử dụng cho các thông số mà không có khoảng trắng. line được sử dụng cho các thông số cần được phân cách bởi dấu cách. Nếu không, ứng dụng sẽ sử dụng không gian làm đầu vào.

+0

Wow, cảm ơn. Tôi chưa bao giờ tưởng tượng rằng NAntContrib đã quá xa phía sau. – keithm

+7

-1 Bạn có thể sử dụng với .NET 3.5. Hãy chắc chắn rằng bạn có những đêm mới nhất của NAnt và NAntContrib (thử nghiệm Đêm Thứ Sáu 20090130 và NAntContrib Nightly 20090201). –

+0

Tôi mới làm quen với NAnt và hơi bối rối về ý nghĩa của arg line arg value khi giao dịch với msbuild. Ai đó có thể giải thích cho tôi sự khác biệt vì tài liệu vẫn không làm rõ mọi thứ đối với tôi. – sheir

2

Đây là một mục tiêu đơn giản

<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> 
Các vấn đề liên quan