Почему Нант не работает с TeamCity? - PullRequest
7 голосов
/ 27 октября 2008

Мне не удалось создать свой проект ASP.NET MVC, и он отлично работает локально. Я добавляю nant в папку инструментов и добавляю ее в систему управления версиями. TeamCity забирает мои изменения и начинает сборку, но она не удается.

Я полагаю, что я использую последнюю версию Nant, и я добавил .net framework 3.5 в nant.exe.config. Чего мне не хватает на сервере, и да .NET Framework установлен на сервере, так как приложение asp.net mvc действительно работает, если я вручную собираю и внедряю там?

Файл сборки выглядит следующим образом:

<target name="compile" description="Compiles using the AutomatedDebug Configuration">
    <msbuild project="Tolt.Sims.sln" />
</target>

Вот ошибка:

BUILD FAILED Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework.
Property evaluation failed. Expression: ${path::combine(sdkInstallRoot, 'bin')} ^^^^^^^^^^^^^^ Property 'sdkInstallRoot' has not been set.
For more information regarding the cause of the build failure, run the build again in debug mode. Try 'nant -help' for more information

Ответы [ 6 ]

4 голосов
/ 11 марта 2009

Потенциально у вас не установлен .NET Framework 2.0 SDK.

Вы можете установить его с http://www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en

4 голосов
/ 27 октября 2008

Если вы используете бета-версию NAnt (которая в настоящее время является единственным способом получить поддержку для таргетинга чего-либо большего, чем платформа 2.0), вы можете столкнуться с проблемой реестра. Схожая проблема была , о которой сообщил Тим Барч .

Вещи в значительной степени сводятся к NAntContrib (провайдеру задачи msbuild), указывающему на версию msbuild 2.0. Проверьте его решение, чтобы увидеть, относится ли оно к вашему сценарию.

3 голосов
/ 01 июля 2010

Это было исправлено после выпуска 0.86 beta1. 1 апреля 2010 года было выпущено исправление 0.90 на случай, если обновление nant является вариантом для вас. Для получения дополнительной информации, выпуск исправления в 0.90, кажется, был простыми изменениями в файле nant.exe.config. Текст, выделенный жирным шрифтом ниже, был добавлен и, скорее всего, исправит проблему, не устанавливая 2.0 SDK.

<directory name="${path::combine(sdkInstallRoot, 'bin')}" if = "$ {property :: существующие ('sdkInstallRoot')}" />

Обновите раздел net-2.0, чтобы исправить это.

3 голосов
/ 16 апреля 2009

Я исправил это, добавив в реестр следующее:

Новое строковое значение по адресу: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework

По имени: sdkInstallRootv2.0

Со значением: C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \

Кажется, что оно ожило ...

ш: //

1 голос
/ 08 января 2009

См. http://www.mail-archive.com/nant-developers@lists.sourceforge.net/msg07519.html; это известная ошибка в 0.86 бета1.

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

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

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

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

...