Làm cách nào để tôi có thể xây dựng các dự án nhắm mục tiêu Khuôn khổ .NET 4.0?Xây dựng các dự án .NET 4 với Nant
Trả lời
Nếu bạn muốn sử dụng nant để xây dựng các dự án nhắm mục tiêu .NET 4.0, bạn sẽ phải sửa đổi NAnt.exe.config
và thêm khung mục tiêu net-4.0 và thêm dòng <supportedRuntime ... />
vào phần <startup
>.
này là khá giống với những câu hỏi/vấn đề:
<msbuild> task or msbuild.exe with NAnt?
Một lựa chọn khác sẽ được trực tiếp gọi MSBuild từ một khối.
<property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v4.0\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>
http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html là mã đầy đủ cho tệp .config cho NAnt.
2010 ngày 15 tháng 4, ... Cập nhật câu trả lời đúng ở trên từ Eugene, sau khi .net 4 và vs2010 được phát hành.
Tôi đã tải xuống vs2010 và thời gian chạy .net 4. Phiên bản sản xuất có vẻ là v4.30319 tức là (C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319)
Sau khi xem xét http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html ... tôi dán vào văn bản và thay đổi toàn bộ văn bản từ v4 .0.20506 đến v4.30319 an đã thêm văn bản vào NAnt.exe.config.
sau đó tôi cập nhật kịch bản Nant tôi để
<property name="nant.settings.currentframework" value="net-4.0" />,
này để kịch bản Nant dự án của tôi sử dụng .net 4 biên dịch
Và điều này đã cho tôi một Nant xây dựng với .net 4 nhị phân ....
Cập nhật 2010-06-14: Câu trả lời ở trên đã được trả lời bằng nant-0.85, tôi đã nâng cấp lên nant-0.90 và phải thêm vendor="Microsoft"
vào thuộc tính khung được thêm vào cấu hình nants. Ngoài ra, nó trông giống như nant0.9 tìm thấy các thư viện .net khác nhau, như tôi đã có thêm một cái gì đó như thế này để build.xml Nant tôi ...
<property name="framework-get-assembly-directory" value="${framework::get-assembly-directory('net-4.0')}" />
<property name="dotNetReferenceAssemblyPath" value="${framework-get-assembly-directory}\" />
và
<include name="${dotNetReferenceAssemblyPath}System.ComponentModel.DataAnnotations.dll" />
Cập nhật phiên bản của NAnt lên phiên bản mới nhất hiện có (hiện tại là 0,91 Alpha 2) là cần thiết để tôi làm việc này (ngoài các thay đổi về cấu hình và bản dựng). btw, không cần số
Chỉ cần đặt các thông tin đó vì vậy tôi có thể tìm thấy nó một lần nữa, để xây dựng C++ dự án mà không sửa đổi biến PATH environement và tạo LIB/LIBPATH/BAO GỒM nHỮNG sỰ biến hoặc chạy Nant từ vsvars32, một cái gì đó như thế là cần thiết trong file config Nant:
<project>
<readregistry
property="WindowsSdkDir"
key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\InstallationFolder"
hive="LocalMachine"
failonerror="true" />
<readregistry
property="installRoot"
key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
hive="LocalMachine" />
<readregistry
property="sdkInstallRoot"
key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder"
hive="LocalMachine"
failonerror="false" />
<readregistry
property="vs10Win32Tools"
key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-Win32Tools\InstallationFolder"
hive="LocalMachine"
failonerror="false" />
<readregistry
property="vcInstallDir"
key="SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VC\ProductDir"
hive="LocalMachine"
failonerror="true" />
<readregistry
property="vs10dbghelp"
key="SOFTWARE\Microsoft\VisualStudio\10.0\Setup\Dbghelp_path"
hive="LocalMachine"
failonerror="true" />
<setenv name="PATH" value="${path::combine(vcInstallDir, 'bin')};${vs10dbghelp};${sdkInstallRoot};${vs10Win32Tools};${environment::get-variable('PATH')};" />
<setenv name="INCLUDE" value="${path::combine(WindowsSdkDir, 'include')};${path::combine(vcInstallDir, 'atlmfc/include')};${path::combine(vcInstallDir, 'include')};${environment::get-variable('INCLUDE')}" />
<setenv name="LIB" value="${path::combine(WindowsSdkDir, 'lib')};${path::combine(vcInstallDir, 'atlmfc/lib')};${path::combine(vcInstallDir, 'lib')};${environment::get-variable('LIB')}" />
<setenv name="LIBPATH" value="${path::combine(installRoot, 'v4.0.30319')};${path::combine(installRoot, 'v3.5')};${path::combine(WindowsSdkDir, 'lib')};${path::combine(vcInstallDir, 'atlmfc/lib')};${path::combine(vcInstallDir, 'lib')};${environment::get-variable('LIBPATH')}" />
</project>
Đường dẫn đăng ký là một trong VS2010 do SDK tương ứng đang dùng lúc này ...
Tôi đã sử dụng tất cả các câu trả lời ở trên và vẫn gặp lỗi xây dựng lạ: "lỗi MSB6006:" AL.exe "đã thoát với mã 128 ". Lỗi không hữu ích chút nào. Tôi đã làm một số googling và đưa ra vài câu trả lời. Dưới đây là các liên kết: msdn help và asp.net forums
Tôi đã vật lộn với lỗi đó cả ngày, nghiên cứu nhật ký "chi tiết" và "chẩn đoán", nhưng tất cả những gì nó làm là chỉ cho tôi đến hội đồng không thành công. Không có lỗi cụ thể. Tôi thậm chí không thể sao chép nó trên hộp địa phương của tôi.Cuối cùng, tôi quyết định thử đề xuất về quy ước đặt tên tệp tài nguyên trong liên kết thứ hai (asp.net forums) và ... alleluia! xây dựng của tôi bắt đầu hoạt động. Tôi không biết điều gì đang xảy ra với việc xây dựng thất bại vì tên tài nguyên, vẫn làm việc trên đó, nhưng mục tiêu trước mắt của tôi là xây dựng công việc.
Hy vọng điều này sẽ giúp người khác ở ngoài đó.
NAnt 0.86 và sau đó sẽ hết hộp. Khi viết bài này, tôi đang sử dụng 0,91.
Khi tải xuống từ mạng, hãy nhớ "unblock" tệp zip (đặt lại vùng bảo mật) trước khi giải nén.
Tôi có vấn đề tương tự cho 4,5, điều này giải quyết vấn đề của tôi:
http://www.donnfelker.com/nant-sdkinstallroot-has-not-been-set/
Tôi có một máy 64 bit nhưng .net được cài đặt như 32 bit. SdkInstallRoot không thể tìm thấy đường dẫn chính xác. Tôi đã kiểm tra trong trình soạn thảo đăng ký của mình để tìm đường dẫn chính xác và thay thế mục nhập trong nant.exe.config.
tôi thay thế:
<locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" failonerror="false" />
với điều này:
<readregistry
property="sdkInstallRoot"
key="SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools\InstallationFolder"
hive="LocalMachine"
failonerror="false" />
- 1. Xây dựng các dự án Flex trong ant/nant
- 2. xây dựng một dự án
- 3. dự án đa Gradle xây dựng với các dự án có sản phẩm nào
- 4. Ant/Ivy để xây dựng dự án
- 5. Xây dựng một Dự án Android với Ant/Ivy
- 6. Xây dựng dự án Unity với Jenkins không thành công
- 7. Xây dựng NAnt hoặc TFS tốt hơn?
- 8. Eclipse: Không thể xây dựng dự án
- 9. Đội xây dựng với nhiều dự án nhóm
- 10. Tự động xây dựng dự án Delphi 2010 với MSBuild
- 11. Nói với AppleScript để xây dựng XCode Dự án
- 12. Ant xây dựng dự án Android với phụ thuộc lib
- 13. Xây dựng dự án MSVC với cmake và dòng lệnh
- 14. Jenkins có thể xây dựng các dự án Eclipse không?
- 15. Xây dựng các Dự án Xt Qt Từ Dòng Lệnh
- 16. Không thể xây dựng dự án, vấn đề với gradle?
- 17. xây dựng dự án ca cao với maven
- 18. Kinh nghiệm với Hudson - Dự án xây dựng ma trận
- 19. Xây dựng một dự án với Ant bao gồm ActionbarSherlock như một dự án thư viện
- 20. maven lực xây dựng lại các dự án phụ thuộc (xây dựng phụ thuộc đầu tiên)
- 21. Sao chép các tệp từ dự án này sang dự án khác sau khi xây dựng
- 22. Dự án thử nghiệm đơn vị không xây dựng từ máy chủ xây dựng
- 23. Dự án xây dựng bên ngoài Xcode 4 và gỡ lỗi
- 24. MSBuild/m: 4 không thành công vì nó xây dựng cùng một dự án hai lần
- 25. Thứ tự xây dựng dự án trong Visual Studio 2010?
- 26. Compile .net vào xây dựng máy chủ với .net 4.5
- 27. Cách thiết lập xây dựng/triển khai cho dự án .net trên Jenkins
- 28. Xây dựng nền tảng NAnt và nền tảng kép - cách tốt nhất để xây dựng trên Windows AND Mono/Linux
- 29. xây dựng dự án x64 C# với kết quả msbuild trong mục tiêu 32bit
- 30. Dự án thư viện Android tùy chỉnh xây dựng
Đây là những gì tôi cần thiết sau khi nhận được thông báo Vui lòng thêm một \ \ nút với gia đình 'net' và clrversion '4.0.30319 'dưới nút nền tảng' win32 '. –