Не удается создать NAnt на Windows Server 2008 после установки ASP.NET 2.0 SDK - PullRequest
2 голосов
/ 11 марта 2009

Я использую TeamCity для управления одним из своих проектов, однако он не очень хорошо работает с Nant на Windows Server 2008. Что можно сделать, чтобы это исправить?

ДО установки пакета SDK ASP.NET 2.0 Framework:

[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 ]

2 голосов
/ 15 ноября 2012
  1. Требуется запись .net 3.5 в разделе "frameworks".

  2. Гарантирует, что Sdkinstallroot версии 3.5 в этом разделе выглядит следующим образом, что является основной причиной этой проблемы -
    <readregistry property="sdkInstallRoot" key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder" hive="LocalMachine" failonerror="false" />

Надеюсь, это поможет!

1 голос
/ 25 марта 2009

Пара вещей, которые могут вызвать это.

  1. У вас не установлен полный .Net 2.0 SDK.
  2. Вам не хватает некоторых ключей реестра. Если вы посмотрите в реестре, скажем, Windows XP / Vista, и поищите sdkInstallRoot, вы, вероятно, найдете его. Затем просто скопируйте код на свой сервер.

Однако, чтобы убедиться, что у вас установлен .net Framework sdks @ по крайней мере, просто перейдите в папку C: \ windows \ Microsoft.net и перейдите к нужной версии и выполните поиск, чтобы попытаться найти, скажем, csc.exe или программы vbc.exe. Если вы не можете их найти, значит, у вас не установлен SDK, но, скорее всего, установлена ​​среда выполнения.

Попробуй и посмотри, поможет ли это.

0 голосов
/ 10 января 2010

Я столкнулся с похожими проблемами с NAnt. Я знаю, что это не Best решение, но оно работает, если вам нужно продвинуть свой проект.

Я обнаружил, что установка среды разработки (C # Express у меня не работала, но VS 2008 сработала) на сервере устраняет эту проблему. (Да, я понимаю, что это идет вразрез с обычными лучшими практиками, но это работает и позволяет моим сценариям работать, чтобы я мог вернуться к кодированию.)

Просто подумал, что поделюсь, если кто-нибудь еще окажется в подобной ситуации ... (это сработало для меня и с CruiseControl.Net, и с Хадсоном).

0 голосов
/ 30 апреля 2009

При использовании Nant с 64-битным сервером Windows Server 2003 мне приходилось загружать ночные сборки, поскольку Nant 0.86 beta 1 имеет 64-битные проблемы. Я заставил его работать, но я не уверен, что он будет работать с Windows Server 2008. Nant был в бета-версии навсегда. Если вы застряли в Nant, попробуйте ночную сборку, если нет, я рекомендую MSBuild для .Net 2+ и 64-битных машин.

Для получения дополнительной информации ознакомьтесь с этой статьей MsBuild vs. Nant

...