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>
Các vấn đề liên quan
- 1. Tác vụ echo MSBuild?
- 2. Ức chế Đăng xuất Đầu ra cho NAnt Xóa Tác vụ
- 3. Đầu vào tác vụ so với các nguồn tác vụ
- 4. Xây dựng NAnt hoặc TFS tốt hơn?
- 5. Khởi động lại tác vụ hoặc tạo một tác vụ mới?
- 6. Phương thức nên trong API trả về Tác vụ kết thúc bằng Tác vụ hoặc Async
- 7. Tác vụ phụ LongRunning tác vụ?
- 8. Tạo một tác vụ với một hành động <T>
- 9. Bắt đầu từ mùa xuân <tác vụ: theo lịch-nhiệm vụ>
- 10. tệp bên ngoài để giữ các tác vụ msbuild
- 11. nhật ký nant với dữ liệu và dấu thời gian
- 12. Sự khác biệt giữa Tác vụ <> và IAsyncOperation <>
- 13. Rx và tác vụ - hủy tác vụ đang chạy khi tác vụ mới được sinh ra?
- 14. Thanh tác vụ Sherlock với menu trượt
- 15. Thực hiện tác vụ Ant với Maven
- 16. Thực hiện Thanh tác vụ: ABSherlock hoặc ABCompat?
- 17. Mã hóa đầu ra MSBuild.exe
- 18. Tác vụ chạy dài (hoặc mãi mãi) trên Windows Azure
- 19. Sự cố với Trình lập lịch tác vụ khởi chạy tác vụ
- 20. tác vụ runJar gradle?
- 21. Thiết lập CI với TeamCity với Git & NAnt
- 22. StyleCop tích hợp với CI quá trình xây dựng (Criuse Control, Nant, msbuild và StyleCop)
- 23. Tôi gặp lỗi khi xây dựng tệp .vdproj trên msbuild với nant
- 24. Thao tác chuỗi với & hoặc + trong VB.NET
- 25. Thanh tác vụ chia tách Android với các mục tác vụ ở trên cùng và dưới cùng?
- 26. Cách chỉ định phiên bản MSBuild trong tập lệnh nant?
- 27. tác vụ nền java
- 28. Hủy tác vụ nền
- 29. Kiểm soát thứ tự thực hiện Tác vụ với ExecutorService
- 30. Cách thêm tác vụ theo lịch với Inno Setup
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