MSBuildスクリプトでいくつかの特定のファイルをコピーする必要がある状況がありますが、それらは存在する場合と存在しない場合があります。それらが存在しない場合は問題ありませんが、その場合は必要ありません。<copy>
ただし、リスト内のすべてのアイテムが見つからない場合、標準タスクはエラーをスローします...
Vilx-
質問する
18890 次
3 に答える
50
コピー タスクでExists条件を使用します。
<CreateItem Include="*.xml">
<Output ItemName="ItemsThatNeedToBeCopied" TaskParameter="Include"/>
</CreateItem>
<Copy SourceFiles="@(ItemsThatNeedToBeCopied)"
DestinationFolder="$(OutputDir)"
Condition="Exists('%(RootDir)%(Directory)%(Filename)%(Extension)')"/>
于 2009-02-04T15:38:50.137 に答える
7
最も簡単なのは、ContinueOnError フラグを使用することですhttp://msdn.microsoft.com/en-us/library/7z253716.aspx
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceFiles Include="a.cs;b.cs;c.cs"/>
</ItemGroup>
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="c:\MyProject\Destination"
ContinueOnError="true"
/>
</Target>
</Project>
しかし、他の何かが間違っている場合、あなたはそれに気付かないでしょう。したがって、madgnome の回答からの条件が存在する方がよいでしょう。
于 2009-02-04T15:50:29.397 に答える