我没有设置构建我的ASP.NET MVC项目,它在本地工作正常。我将nant添加到tools文件夹并将其添加到版本控制。 TeamCity选择我的更改并开始构建,但它失败了。
我相信我正在使用最新版本的Nant,我已将.net framework 3.5添加到nant.exe.config中。我在服务器上缺少什么,是的.net框架安装在服务器上,因为如果我在那里手动构建和部署asp.net mvc应用程序吗?
构建文件如下:
<target name="compile" description="Compiles using the AutomatedDebug Configuration">
<msbuild project="Tolt.Sims.sln" />
</target>
这是错误:
BUILD FAILED Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework. Property evaluation failed. Expression: ${path::combine(sdkInstallRoot, 'bin')} ^^^^^^^^^^^^^^ Property 'sdkInstallRoot' has not been set. For more information regarding the cause of the build failure, run the build again in debug mode. Try 'nant -help' for more information
答案 0 :(得分:4)
如果您使用的是NAnt的测试版(目前这是获得针对大于2.0框架的任何目标的唯一支持方式),您可能会遇到注册表问题。类似的问题是reported by Tim Barcz。
对于指向2.0版msbuild的NAntContrib(msbuild任务的提供者)来说,事情已经很简单了。查看他的解决方案,看它是否适用于您的方案。
答案 1 :(得分:4)
您可能没有安装.NET Framework 2.0 SDK。
答案 2 :(得分:3)
我通过在注册表中添加以下内容来修复此问题:
新字符串值:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework
命名:sdkInstallRootv2.0
使用值:C:\ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \
似乎要生活......
瓦特://
答案 3 :(得分:3)
这是在0.86 beta1发布后修复的。在2010年4月1日,0.90发布了修复,以防升级nant是一个选项。为了提供更多详细信息,0.90中的修订版本似乎是对nant.exe.config文件的简单更改。下面添加了粗体文本,可能无需安装2.0 SDK即可解决问题。
<directory name="${path::combine(sdkInstallRoot, 'bin')}"
if =“$ {property :: exists('sdkInstallRoot')}” /&gt;
更新net-2.0部分以修复它。
答案 4 :(得分:1)
见http://www.mail-archive.com/nant-developers@lists.sourceforge.net/msg07519.html;它是0.86 beta1中的一个已知错误。
答案 5 :(得分:0)
我遇到过与NAnt类似的问题。我知道这不是 Best 解决方案,但如果您需要让项目移动,它就是一个可行的解决方案。
我发现在服务器上安装开发环境(C#Express对我不起作用,但VS 2008没有用)会使这个问题消失。 (是的,我意识到这违反了正常的最佳做法,但它可以运行并让我的脚本运行,所以我可以回到编码。)
刚想我会分享任何其他人处于类似情况......(这对我和CruiseControl.Net以及Hudson都有用。)