2

我正在使用 TeamCity 来管理我的一个项目,但它似乎无法在 Windows Server 2008 上与 Nant 一起正常工作。我可以做些什么来解决这个问题?

在安装 ASP.NET 2.0 框架 SDK 之前:

[10:21:07]: BUILD FAILED
[10:21:07]: Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework.
[10:21:07]:     Property evaluation failed.
[10:21:07]: Expression: ${path::combine(sdkInstallRoot, 'bin')}
[10:21:07]:                             ^^^^^^^^^^^^^^
[10:21:07]:         Property 'sdkInstallRoot' has not been set.

后:

[11:48:16]: Target framework: Microsoft .NET Framework 2.0
[11:48:16]: Target(s) specified: test 
[11:48:16]:  [property] Target framework changed to "Microsoft .NET Framework 3.5".
[11:48:16]: BUILD FAILED
[11:48:16]: INTERNAL ERROR
[11:48:16]: System.NullReferenceException: Object reference not set to an instance of an object.
[11:48:16]:    at NAnt.Core.FrameworkInfo.get_Version()
[11:48:16]:    at NAnt.Core.Project.UpdateTargetFrameworkProperties()
[11:48:16]:    at NAnt.Core.Tasks.PropertyTask.ExecuteTask()
[11:48:16]:    at NAnt.Core.Task.Execute()
[11:48:16]:    at NAnt.Core.Project.InitializeProjectDocument(XmlDocument doc)
[11:48:16]:    at NAnt.Core.Project.Execute()
[11:48:16]:    at NAnt.Core.Project.Run()
[11:48:16]: Please send bug report to nant-developers@lists.sourceforge.net.
[11:48:16]: Total time: 0.1 seconds.
[11:48:16]: Process exited with code 1
[11:48:16]: Build finished
4

4 回答 4

2
  1. 它需要“框架”部分中的 .net 3.5 条目。

  2. 确保该部分中3.5版本的Sdkinstallroot如下,这是导致此问题的根本原因-
    <readregistry property="sdkInstallRoot" key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder" hive="LocalMachine" failonerror="false" />

希望这可以帮助!

于 2012-11-15T07:19:00.217 回答
1

有几件事可能会导致这种情况。

  1. 您没有安装完整的 .Net 2.0 SDK。
  2. 您缺少一些注册表项。如果您查看 Windows xp / vista 机器的注册表并搜索 sdkInstallRoot,您可能会找到它。然后只需将代码复制到您的服务器。

但是,要验证您是否安装了 .net 框架 sdks @ 至少只需转到 C:\windows\Microsoft.net 文件夹并转到您需要的版本并在其中搜索以尝试找到 csc.exe 或 vbc.exe程式。如果找不到它们,则说明您没有安装 SDK,但很可能安装了运行时。

试一试,看看是否有帮助。

于 2009-03-25T11:30:43.847 回答
0

在将 Nant 与 Windows Server 2003 64 位服务器一起使用时,我不得不下载每晚构建的版本,因为 Nant 0.86 beta 1 存在 64 位问题。我确实让它工作了,但我不确定它是否可以与 Windows Server 2008 一起工作。Nant 一直处于测试阶段。如果您坚持使用 Nant,请尝试夜间构建,否则我建议为 .Net 2+ 和 64 位机器使用 MSBuild。

有关更多信息,请查看这篇文章MsBuild vs. Nant

于 2009-04-30T14:29:42.933 回答
0

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

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

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

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