Файл копии MsBuild после сборки

17

Я хочу скопировать xml-файл из основного каталога в bin\Debug после создания проекта, но мое решение не работает. Я отредактировал файл .csproj и добавил:

<Target Name="AfterBuild">
     <Copy SourceFiles="Controllers.xml" DestinationFolder="\bin\Debug" ContinueOnError="true" />
</Target>

Что я делаю неправильно? Сборка выполнена успешно.

    
задан KlimczakM 12.09.2012 в 11:01
источник

3 ответа

36

Ваша папка назначения (скорее всего) неверна. Если вы укажете его с ведущей обратной косой чертой, это всего лишь короткая форма для <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>
    
ответ дан Christian.K 12.09.2012 в 12:23
источник
4

Является ли xml-файл в вашем проекте?  Тогда одним из его свойств является CopyToOutputDirectory. Установите его в CopyAlways, и когда проект будет создан, файл будет скопирован в bin \ debug.

    
ответ дан James Woolfenden 12.09.2012 в 13:33
источник
1

Вы должны указать полный путь. Я подозреваю, что задача копирования MsBuild выполняется из «Пути по умолчанию» Visual Studio, и файл не найден. Кроме того, вы, скорее всего, хотите, чтобы файл попал в целевой каталог сборки.

<Target Name="AfterBuild">
    <Copy SourceFiles="$(ProjectDir)Controllers.xml" DestinationFolder="$(TargetDir)" ContinueOnError="true" />
</Target>
    
ответ дан Filip De Vos 12.09.2012 в 13:46
источник