Почему MSBuild, управляемый Nant, компилируется в разные каталоги на разных машинах?
-
23-08-2019 - |
Вопрос
Я написал скрипт Nant, который выполняется MSBUILD.exe для компиляции проекта на моем компьютере разработчика.На моем компьютере разработчика projects создает свои выходные данные в bin\ x86 \ Release, и мой скрипт Nant архивирует содержимое этого каталога.Затем я передаю все в SVN и позволяю TeamCity запустить скрипт Nant, который выполняет MSBUILD.exe скомпилировать проект и заархивировать выходные данные, но выходные данные создаются в bin \ Release, а zip-файл пуст, потому что он выглядит в bin \ x86\ Release.Почему это происходит?
Когда я вношу изменения в конфигурацию и платформу в VS.NET 2008, я не вижу, чтобы файл проекта отображался как измененный.Хранятся ли эти настройки в файле проекта, файле решения или файле конфигурации пользователя и, следовательно, не переносятся на сервер сборки?
Решение
Быстрое решение:Вы можете использовать флаг /свойство:OutDir=bin\x86 elease
Вам пришлось бы найти первопричину этого.Вероятно, конфигурация неверна.Вы можете явно изменить конфигурацию на что-то вроде /p:Configuration=Release
Другие советы
Вы уверены, что ${project.config} указывает на одно и то же место как в локальной среде, так и в среде TeamCity?
Агент не всегда запускается с переменными среды sem в качестве локального компьютера.Поэтому я бы начал с проверки всех свойств и посмотрел, куда они указывают на локальном компьютере, а также на TeamCity.
Что касается /p:Configuration=${project.config}, у вас может быть запущена только одна конфигурация, но вы можете указать больше свойств с помощью ;между ними:
/p:Конфигурация=${project.config};Внешний каталог=bin\x86 elease