7

我已经 nant 设置来构建我的 ASP.NET MVC 项目,它在本地运行良好。我将 nant 添加到工具文件夹并将其添加到版本控制中。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 无法初始化“Microsoft .NET Framework 2.0”(net-2.0)目标框架。
属性评估失败。表达式:${path::combine(sdkInstallRoot, 'bin')} ^^^^^^^^^^^^^^ 属性 'sdkInstallRoot' 尚未设置。
有关构建失败原因的更多信息,请在调试模式下再次运行构建。尝试“nant -help”以获取更多信息
4

6 回答 6

4

如果您使用的是 NAnt 的 beta 版本(目前这是您获得针对高于 2.0 框架的任何东西的支持的唯一方法),您可能会遇到注册表问题。Tim Barcz 报告了一个类似的问题。

事情几乎可以归结为指向 2.0 版本的 msbuild 的 NAntContrib(msbuild 任务的提供者)。查看他的解决方案,看看它是否适用于您的场景。

于 2008-10-27T20:44:25.010 回答
4

您可能没有安装 .NET Framework 2.0 SDK。

您可以从 http://www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en安装它

于 2009-03-11T10:30:12.847 回答
3

我通过在注册表中添加以下内容来解决此问题:

新字符串值位于:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework

命名:sdkInstallRootv2.0

使用值:C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\

仿佛生机勃勃...

w://

于 2009-04-16T09:20:14.667 回答
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')}" />

更新 net-2.0 部分以修复它。

于 2010-06-30T21:45:46.260 回答
1

http://www.mail-archive.com/nant-developers@lists.sourceforge.net/msg07519.html;这是 0.86 beta1 中的一个已知错误。

于 2009-01-08T10:35:17.473 回答
0

我遇到了与 NAnt 类似的问题。我知道这不是最好的解决方案,但如果您需要让您的项目动起来,它是一种有效的解决方案。

我发现在服务器上安装开发环境(C# Express 对我不起作用,但 VS 2008 对我有用)可以解决这个问题。(是的,我意识到这违背了正常的最佳实践,但它可以工作并让我的脚本运行,这样我就可以重新开始编码。)

只是想我会分享其他人处于类似情况的情况..(这对我来说对 CruiseControl.Net 和 Hudson 都有效)。

于 2010-01-10T17:21:39.063 回答