Подтвердить что ты не робот

MSBuild - проект с событием xcopy после сборки

У меня есть проект, который имеет событие post-build, которое скопирует dll в определенный каталог:

xcopy "$ (TargetDir) $(TargetName).dll" "$ (SolutionDir)..\UdpLocationService\bin\Plugins \" /d/y xcopy "$ (TargetDir) $(TargetName).pdb" "$ (SolutionDir)..\UdpLocationService\bin\Plugins \" /d/y

Тем не менее, у меня есть CruiseControl.NET, настроенный как сервер сборки, и MSBuild не удается построить этот проект из-за этого события xcopy post-build:

MSB3073: команда "xcopy" C:\Build\Services\Windows\VehicleServer\Plugins\Payload\bin\Debug\Payload.dll "Undefined..\UdpLocationService\bin\Plugins\" /d/y xcopy "C:\Build\Services\Windows\VehicleServer\Plugins\Payload\bin\Debug\Payload.pdb" "Undefined..\UdpLocationService\bin\Plugins \" /d/y "завершена с помощью код 4. в Microsoft.Common.targets(3397, 13)

Любые предложения, чтобы устранить это? Спасибо,

Джастин

4b9b3361

Ответ 1

Выполните следующие действия:

  • Выгрузите файл проекта (например, *.csproj)
  • Откройте файл проекта для редактирования
  • Найти цель AfterBuild
  • Отделите два вызова XCopy на две отдельные задачи Exec
  • Сохраните изменения и перезагрузите файл проекта

Ответ 2

Я столкнулся с той же проблемой с TeamCity.

Проблема заключается в свойстве $(SolutionDir) в файле сборки. Вы не определили его в своем обращении к MsBuild (вот почему вы видите слово undefined в своем выходе).

Вызовите msbuild с набором свойств, например:

msbuild myproject.csproj /property:SolutionDir="solution directory"\

Где "каталог решений" - это каталог, содержащий файл решения. Обратите внимание на конечную косую черту, вам нужно, чтобы путь был правильно сформирован.

Ответ 3

Я исправил это для проблем с пакетом Microsoft.SqlServer.Compact nuget (который добавляет аналогичную пост-сборку script), добавив:

<SolutionDir Condition="'$(SolutionDir)'=='' or '$(SolutionDir)'=='*Undefined*'">..\</SolutionDir>

прямо над <PostBuildEvent>. Вы хотите настроить относительный путь в соответствии с макетом проекта.