2009-04-03 1 views
0

Я написал сценарий Нанта, который выполняет MSBUILD.exe для компиляции проекта на моей машине dev. На моей машине dev проекты строят свой вывод в bin \ x86 \ Release, а мой Nant-скрипт застегивает содержимое этого каталога. Затем я передаю все в SVN и позволяю TeamCity запускать сценарий Nant, который запускает MSBUILD.exe для компиляции проекта и zip-вывода, но вывод создается в bin \ Release и zip-файл пуст, потому что он выглядит в bin \ x86 \ Выпуск. Почему это происходит?Почему Nant управляет MsBuild компиляцией в другую директорию на разных машинах?

Когда я вношу изменения в конфигурацию и платформу в VS.NET 2008, я не вижу, как файл проекта загорается как измененный. Сохраняются ли эти параметры в файле проекта, файле решения или файле конфигурации пользователя и поэтому не переносятся на сервер сборки?

ответ

1

Быстрое решение: Вы можете использовать флаг/свойства: OutDir = Bin \ x86 \ Release

Вы должны найти причину этого. Возможно, неправильная конфигурация. Вы можете явно изменить конфигурацию на что-то вроде/p: Configuration = Release

+0

Спасибо за быстрый ответ, но где я прохожу этот параметр? Моя задача Nant передает следующие параметры: AllProjects.sln/t: rebuild /p:Configuration=${project.config} Я просто добавляю еще один параметр/p? – flipdoubt

1

Вы уверены, что $ {project.config} указывает на то же место в локальных и командных средах TeamCity?

Агент не всегда работает с переменными среды окружения в качестве локальной машины. Поэтому я бы начал проверять все свойства и видеть, где они указывают на локальном компьютере, а также на TeamCity.

Что касается /p:Configuration=${project.config}, вы можете иметь только одну конфигурацию, но вы можете указать больше свойств; между ними:

/p:Configuration=${project.config};OutDir=bin\x86\Release

+0

btw/p: xxx = yyy - короткая рука для/property: xxx = yyy – haqwin

+0

Согласно выходному сигналу Nant, $ {project.config} оценивает значение «Release» на машинах dev и TeamCity – flipdoubt

Смежные вопросы