Файл копии MsBuild после сборки
Я хочу скопировать xml файл из основного каталога в bin\Debug
после создания проекта, но мое решение не работает. Я отредактировал файл .csproj
и добавил:
<Target Name="AfterBuild">
<Copy SourceFiles="Controllers.xml" DestinationFolder="\bin\Debug" ContinueOnError="true" />
</Target>
Что я делаю неправильно? Сборка выполнена успешно.
Ответы
Ответ 1
Ваша папка назначения (скорее всего) неверна. Если вы укажете его с ведущей обратной косой чертой, на самом деле это всего лишь короткая форма для <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>
Ответ 2
Является ли xml файл в вашем проекте?
Тогда одним из его свойств является CopyToOutputDirectory. Установите его в CopyAlways, и когда проект будет создан, файл будет скопирован в bin\debug.
Ответ 3
Вы должны указать полный путь. Я подозреваю, что задача копирования MsBuild выполняется из "Пути по умолчанию" Visual Studio, и файл не найден. Кроме того, вы, скорее всего, хотите, чтобы файл попал в целевой каталог сборки.
<Target Name="AfterBuild">
<Copy SourceFiles="$(ProjectDir)Controllers.xml" DestinationFolder="$(TargetDir)" ContinueOnError="true" />
</Target>