Dường như có (ít nhất) hai tùy chọn để nhận nant để sử dụng tệp csproj: sử dụng tác vụ NAntContrib hoặc sử dụng msbuild.exe trực tiếp (ví dụ: codecampserver). Tôi đọc quyền này, và nếu như vậy, lợi thế của việc sử dụng msbuild.exe trên nhiệm vụ NAntContrib là gì?<msbuild> tác vụ hoặc msbuild.exe với NAnt?
15
A
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.
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>
Wow, cảm ơn. Tôi chưa bao giờ tưởng tượng rằng NAntContrib đã quá xa phía sau. – keithm
-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). –
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