我如何获得恶性构建面向.NET 4.0框架的项目?
Answer 1:
2010年4月15日...更新上面从尤金正确的答案,.NET 4和VS2010之后被释放。
我下载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:以上与楠-0.85回答,我升级到南特-0.90,不得不增加vendor="Microsoft"
到被添加到nants配置框架属性。 此外,它看起来像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" />
Answer 2:
如果你想使用楠建设目标.NET 4.0的项目,你就必须修改NAnt.exe.config
并添加净4.0目标框架和添加<supportedRuntime ... />
行到<startup
>部分。
Answer 3:
http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html是config文件的恶性一个完整的代码。
Answer 4:
这是非常类似的这些问题/问题:
<的msbuild>任务或msbuild.exe与恶性?
另一种选择是直接调用的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>
Answer 5:
我使用的所有上述问题的答案,仍然遇到了一些奇怪的构建错误:“错误MSB6006:‘Al.exe工具’与代码128退出”。 错误没有帮助的。 我做了一些谷歌搜索,并与几个答案上来。 这里是链接: MSDN帮助和asp.net论坛
我斟酌与错误一整天,学习了“详细”和“诊断”的日志,但它所作的是指向我失败建设大会。 没有具体的错误。 我甚至不能重复它在我的本地框。 最后,我决定尝试对资源文件在第二环节的命名规则(建议asp.net论坛 )和...哈利路亚! 我的构建开始工作。 我不知道这是怎么回事与构建失败,因为资源的名称,对仍在工作,但我的近期目标是让构建工作。
希望这可以帮助别人那里。
Answer 6:
楠0.86后来运行的开箱。 写这篇文章,我使用0.91。
当从网上下载,记得要“ 解除拆包之前”的压缩文件(重置安全区)。
Answer 7:
只要把信息存在,所以我可以找到它再次,建立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正在它的时间...
Answer 8:
我有类似的问题4.5,这解决了我的问题:
http://www.donnfelker.com/nant-sdkinstallroot-has-not-been-set/
我有一个64位的机器,但达网络被安装为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" />