我正在使用TeamCity来管理我的一个项目,但是在Windows Server 2008上它似乎与Nant不兼容。我该怎么做才能解决这个问题?

安装ASP.NET 2.0 Framework 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
有帮助吗?

解决方案

可能导致这种情况的一些事情。

  1. 您没有安装完整的.Net 2.0 SDK。
  2. 您缺少一些注册表项。如果你在注册表中查看一个windows xp / vista机器并搜索sdkInstallRoot,你可能会找到它。只需将代码复制到您的服务器即可。
  3. 但要验证你是否安装了.net框架sdks,请至少转到C:\ windows \ Microsoft.net文件夹并转到所需的版本并在其中搜索以尝试查找说csc.exe或vbc.exe程序。如果您找不到它们,那么您没有安装SDK,但很可能已安装运行时。

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

其他提示

  1. 它需要<!> quot; frameworks <!>中的.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" />

  3. 希望这有帮助!

当使用Nant与Windows Server 2003 64位服务器时,我不得不下载每晚构建为Nant 0.86 beta 1有64位问题。我确实让它工作但我不确定它是否适用于Windows Server 2008.Nant一直处于测试阶段。如果你坚持Nant尝试夜间构建,如果不是我推荐MSBuild for .Net 2+和64 bit机器。

有关详情,请查看此文章 MsBuild vs .Nant

我遇到过与NAnt类似的问题。我知道这不是 Best 解决方案,但是如果你需要让你的项目移动它是有效的。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top