2009-03-17 2 views
5

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

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

Что я здесь делаю неправильно?

EDIT: решение заключается в использовании задачи CreateItem. Предположительно, Visual Studio 2008 удаляет это ограничение. Спасибо, Скотт!

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

ответ

8

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

вам нужно что-то вроде

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

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

+0

Visual Studio сообщает об ошибке: «Элемент под элементом непризнан». Есть идеи? – Dave

+0

Хорошо, когда я изучил это, я увидел упомянутую задачу CreateItem, я еще раз посмотрю. – Dave

0

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

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

Спасибо, но мне нужно сделать это с помощью MSBuild. – Dave

Смежные вопросы