MsBuild копировать файл после сборки
Я хочу скопировать xml-файл из главного каталога в binDebug
после создания проекта, но мое решение не работает. Я редактировал и добавил:
<Target Name="AfterBuild">
<Copy SourceFiles="Controllers.xml" DestinationFolder="binDebug" ContinueOnError="true" />
</Target>
что я делаю не так? Сборка прошла успешно.
3 ответов
ваша папка назначения (скорее всего) неправильно. Если вы укажете его с ведущей обратной косой чертой, это на самом деле просто короткая форма для <current-drive-letter>\bin\Debug
(что делает его фактически абсолютным путем, например C:\bin\Debug
).
использовать bin\Debug
, или, еще лучше, используйте OutputPath
переменная, которая имеет значение либо bin\Debug
или bin\Release
в зависимости от конфигурации сборки.
пример:
<Target Name="AfterBuild">
<Copy SourceFiles="Controllers.xml" DestinationFolder="$(OutputPath)" ContinueOnError="true" />
</Target>
является ли xml-файл в вашем проекте? Тогда одним из его свойств является CopyToOutputDirectory. Установите для него значение CopyAlways, и при построении проекта файл будет скопирован в bin\debug.
вы должны указать полный путь. Я подозреваю, что задача копирования MsBuild выполняется из "пути по умолчанию" Visual Studio, и файл не может быть найден. Кроме того, вы скорее всего хотите файл в целевой каталог построения.
<Target Name="AfterBuild">
<Copy SourceFiles="$(ProjectDir)Controllers.xml" DestinationFolder="$(TargetDir)" ContinueOnError="true" />
</Target>