为什么Nant不与TeamCity合作?

时间:2008-10-27 18:56:53

标签: asp.net-mvc nant teamcity

我没有设置构建我的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

6 个答案:

答案 0 :(得分:4)

如果您使用的是NAnt的测试版(目前这是获得针对大于2.0框架的任何目标的唯一支持方式),您可能会遇到注册表问题。类似的问题是reported by Tim Barcz

对于指向2.0版msbuild的NAntContrib(msbuild任务的提供者)来说,事情已经很简单了。查看他的解决方案,看它是否适用于您的方案。

答案 1 :(得分:4)

答案 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)

答案 5 :(得分:0)

我遇到过与NAnt类似的问题。我知道这不是 Best 解决方案,但如果您需要让项目移动,它就是一个可行的解决方案。

我发现在服务器上安装开发环境(C#Express对我不起作用,但VS 2008没有用)会使这个问题消失。 (是的,我意识到这违反了正常的最佳做法,但它可以运行并让我的脚本运行,所以我可以回到编码。)

刚想我会分享任何其他人处于类似情况......(这对我和CruiseControl.Net以及Hudson都有用。)