Как мне скопировать файлы в другой каталог с помощью MSBuild? - PullRequest
5 голосов
/ 17 марта 2009

Я пытаюсь скопировать несколько файлов в $ (TargetDir) в другую папку (например, C: \ BinCache), но по какой-то причине я не могу заставить MSBuild перестать жаловаться.

  <Target Name="AfterBuild">
    <Copy SourceFiles="$(TargetDir)\*.*"
          DestinationFolder="C:\BinCache" />
  </Target>

Что я здесь не так делаю?

РЕДАКТИРОВАТЬ: решение состоит в том, чтобы использовать задачу CreateItem. Предположительно, Visual Studio 2008 снимает это ограничение. Спасибо, Скотт!

<Target Name="AfterBuild">
  <CreateItem Include="$(TargetDir)\*.*">
    <Output TaskParameter="Include" ItemName="SourceFiles" />
  </CreateItem>
  <Copy SourceFiles="@(SourceFiles)" DestinationFolder="C:\BinCache" />  
</Target>

Ответы [ 2 ]

8 голосов
/ 17 марта 2009

SourceFiles должен быть список элементов

вам понадобится что-то вроде

<Target Name="AfterBuild">
  <ItemGroup>
    <SourceFiles Include="$(TargetDir)\*.*" />
  </ItemGroup>
  <Copy SourceFiles="@(SourceFiles)" DestinationFolder="C:\BinCache" />  
</Target>

Только что заметил, что вы на 2005, в этом случае вам нужно будет использовать задачу CreateItem

0 голосов
/ 17 марта 2009

Просто используйте обычное событие до или после сборки. VS поддерживает это из коробки.

xcopy "@(TargetDir)*.dll" "\yourdir" /i /f /s /v /y
...