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>