5

$(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>
4

2 に答える 2

8

SourceFiles は項目リストである必要があります

次のようなものが必要になります

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

2005 年にいることに気付きました。その場合、CreateItem タスクを使用する必要があります。

于 2009-03-17T17:59:24.743 に答える
0

通常のビルド前またはビルド後のイベントを使用するだけです。VS はこれをすぐにサポートします。

xcopy "@(TargetDir)*.dll" "\yourdir" /i /f /s /v /y
于 2009-03-17T17:58:50.220 に答える