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

19

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

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

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

    
задан KlimczakM 12.09.2012 в 11:01
источник
  • Каков результат сборки для этой цели MsBuild? Я подозреваю, что вам нужно положить $ MSBuildProjectDirectory \ Controllers.xml –  Filip De Vos 12.09.2012 в 11:24
  • К сожалению, это не помогло. Любые другие идеи? –  KlimczakM 12.09.2012 в 11:30

3 ответа

39

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