Почему я получаю предупреждение «SDK для платформы «net-2.0″ недоступен или не настроен». при запуске задачи с задержкой в NAnt?

#nant #delay-sign

#nant #задержка-знак

Вопрос:

Я использую NAnt 0.85 в качестве сценария сборки. Часть скрипта заключается в завершении процесса подписания сборок, подписанных с задержкой, с помощью delay-sign задачи.

Когда скрипт выполняется на сервере сборки, он выполняется без каких-либо проблем.

Когда я запускаю тот же скрипт на своей локальной машине разработки, я получаю предупреждение:

 The SDK for the 'net-2.0' framework is not available or not configured.
     at NAnt.Core.Tasks.ExternalProgramBase.DetermineFilePath()
     at NAnt.Core.Tasks.ExternalProgramBase.get_ProgramFileName()
     at NAnt.Core.Tasks.ExternalProgramBase.PrepareProcess(Process process)
     at NAnt.Core.Tasks.ExternalProgramBase.StartProcess()
     at NAnt.Core.Tasks.ExternalProgramBase.ExecuteTask()
     at NAnt.DotNet.Tasks.DelaySignTask.ExecuteTask()
     at NAnt.Core.Task.Execute()
     at NAnt.Core.Target.Execute()
     at NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies)
     at NAnt.Core.Tasks.CallTask.ExecuteTask()
     at NAnt.Core.Task.Execute()
     at NAnt.Core.Target.Execute()
     at NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies)
     at NAnt.Core.Project.Execute()
     at NAnt.Core.Project.Run()
  

Я почти уверен, что у меня установлен SDK с Visual Studio 2008/2010.

Почему я получаю эту ошибку и что я могу сделать для дальнейшей диагностики проблемы?

Ответ №1:

Ошибка заключается в том, что у меня не было SDK .NET 2.0. Я предположил, что SDK были установлены с Visual Studio, но, по-видимому, установлена только текущая версия. Для 2008 это .NET 3.5 SDK, а не 2.0, и предыдущие версии не предоставляются.

Загрузка и установка SDK 2.0 от Microsoft устранила проблему.

Ответ №2:

Для меня исправление заключалось в обновлении nant до 0.92. Ничего из того, что я делал с пакетами SDK .NET 2.0, не сработало.

Ответ №3:

Я также столкнулся с этой проблемой. Я убедился, что SDK 2.0 был установлен, и я обновился до последней версии NAnt, но это не исправило проблему. Я проверил записи в реестре и даже жестко запрограммировал расположение SDK в конфигурации — все безрезультатно.

Что, наконец, сработало для меня, так это установить 32-разрядную версию .NET 2.0 SDK на мой 64-разрядный компьютер.