12

App_Web_で始まり、で終わる名前のファイルを含むフォルダーがあります.dll。それらの部分の間に何があるのか​​、ファイルの数もわかりません。これらのファイルを別のフォルダーに移動するには、MSBuildが必要です。

だから私はこれを作成しました:

<Move
    SourceFiles="c:\source\App_Web_*.dll"
    DestinationFolder="c:\target"
/>

しかし、ターゲットを実行すると、次の出力が得られます。

error MSB3680: The source file "c:\source\App_Web_*.dll" does not exist.

ファイルは間違いなくそこにあります。

私は何が間違っているのですか?ファイルを移動するにはどうすればよいですか?

4

1 に答える 1

19

タスクパラメータで正規表現を直接使用することはできません。移動してそのコンテンツをタスクに渡すには、ファイルのリストを含むアイテムを作成する必要があります。

<ItemGroup>
    <FilesToMove Include="c:\source\App_Web_*.dll"/>
</ItemGroup>

MSBuildは、正規表現をタスクエグゼキュータに渡す前に展開します。したがって、後でいくつかのターゲットでMoveタスクを呼び出すことができます。

<Target Name="Build">
    <Move
        SourceFiles="@(FilesToMove)"
        DestinationFolder="C:\target"
    />
</Target>
于 2012-10-05T12:33:10.977 に答える