如何才能構建面向.NET 4.0 Framework的項目?使用Nant構建.NET 4項目
回答
如果您想使用nant構建面向.NET 4.0的項目,則必須修改NAnt.exe.config
並添加net-4.0目標框架並將<supportedRuntime ... />
行添加到<startup
>部分。
這是非常類似的這些問題/問題:
<msbuild> task or msbuild.exe with NAnt?
另一種選擇是直接調用的MSBuild從塊。
<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是NAnt的.config文件的完整代碼。
2010年4月15日... 在.net 4和vs2010發佈之後,更新了Eugene的正確答案。
我下載了vs2010和.net 4運行時。 量產版似乎是v4.30319即(C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319)
審查http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html後,... 我的文字粘貼,並從V4改變所有文字.0.20506到v4.30319和 將文本添加到NAnt.exe.config。
然後我更新了我的惡性腳本
<property name="nant.settings.currentframework" value="net-4.0" />,
這使我的項目楠腳本使用.NET 4編譯
這讓我南特建立在.NET 4中的二進制....
更新2010-06-14:上面的答案是nant-0.85,我升級到nant-0.90,並且不得不將vendor="Microsoft"
添加到添加到nants config的框架屬性中。此外,它看起來像nant0.9發現.NET庫的方式不同,因爲我不得不這樣的事情添加到我的惡性的build.xml ...
<property name="framework-get-assembly-directory" value="${framework::get-assembly-directory('net-4.0')}" />
<property name="dotNetReferenceAssemblyPath" value="${framework-get-assembly-directory}\" />
和
<include name="${dotNetReferenceAssemblyPath}System.ComponentModel.DataAnnotations.dll" />
將NAnt的版本更新到最新的可用版本(當前爲0.91 Alpha 2)對我來說是必要的(除了構建和配置更改外)。順便說一句,並不需要最後的
只是把該信息存在,所以我可以再次找到它,打造C++項目,而無需修改PATH environement變量和創建LIB/LIBPATH /包含變量或vsvars32運行惡性,需要在南特的配置文件類似的東西:
<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>
註冊表路徑是VS2010中的一個,因爲相應的SDK需要時間...
我使用了上述所有答案,並且仍遇到一些奇怪的構建錯誤:「錯誤MSB6006:」AL.exe「已退出與代碼128「。錯誤沒有任何幫助。我做了一些谷歌搜索,並提出了幾個答案。這裏是鏈接:msdn help和asp.net forums
我與這個錯誤搏鬥了整整一天,研究「詳細」和「診斷」日誌,但它所做的是指向我失敗的建設大會。沒有具體的錯誤。我甚至無法在本地盒子上覆制它。最後,我決定嘗試在第二個鏈接(asp.net forums)中嘗試關於資源文件命名約定的建議,並且...!我的構建開始工作。我不知道由於資源名稱造成的構建失敗,但仍在處理這個問題,但我的直接目標是讓構建工作。
希望這可以幫助別人。
NAnt 0.86和更高版本用完了。至於寫這個,我使用0.91。
從網上下載時,在開箱之前請記住「unblock」zip文件(復位安全區域)。
我有類似的問題4.5,這解決了我的問題:
http://www.donnfelker.com/nant-sdkinstallroot-has-not-been-set/
我有一個64位的機器,但.NET安裝爲32位。 sdkInstallRoot無法找到正確的路徑。我檢查了我的註冊表編輯器以找到正確的路徑並替換了nant.exe.config中的條目。
我代替:
<locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" failonerror="false" />
與此:
<readregistry
property="sdkInstallRoot"
key="SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools\InstallationFolder"
hive="LocalMachine"
failonerror="false" />
- 1. 使用Nant構建.NET 4.5項目
- 2. Nant無法構建c#.net項目
- 3. 使用NAnt和Ivy構建VB6項目
- 4. Nant:使用svn-externals構建項目
- 5. 使用NANT構建子項目
- 6. 使用MSBUILD構建項目構建最新的,未指定的項目(.NET 4)
- 7. 在ant/nant中構建Flex項目
- 8. 使用asp.net 3.5構建asp.net 4項目
- 9. 使用楠構建.NET 2.0項目
- 10. 使用msbuild構建.net 1.1項目
- 11. 使用nAnt構建包含EDMX的項目
- 12. 你如何使用Nant構建一個ASP.Net MVC項目?
- 13. 使用.net 4項目與4.5目標?
- 14. .Net項目構建問題
- 15. 如何在NANT構建文件中獲得.Net構建宏?
- 16. ASP .NET 4項目使用MVC 4項目單一登錄
- 17. 用於C++項目構建自動化的NAnt腳本
- 18. Nant拒絕使用.Net 3.5
- 19. NAnt構建Error--嵌套構建失敗
- 20. 通過NAnt構建MSI構建
- 21. CruiseControl和NANT構建
- 22. 用NAnt編譯WebSite項目
- 23. 使用nant構建一個自定義的nant任務
- 24. Nant與NCover構建失敗
- 25. 使用maven構建項目
- 26. 引用從SVN構建工件:外部構建在.NET項目
- 27. 使用MVC的項目結構4
- 28. 在子目錄中使用nant和參考庫構建
- 29. .Net/C#構建工具 - 是否NAnt是首選工具?
- 30. Nant for .NET 4.5
這正是我需要得到消息後,請添加\ \節點與家人 '淨' 和CLRVERSION「4.0.30319 '在'win32'平臺節點下。 –
2011-07-22 10:39:32