我有一个文件夹,其文件名称以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.
文件绝对存在。
我做错了什么?如何移动文件?
答案 0 :(得分:15)
您无法在任务参数中直接使用正则表达式。您需要创建一个包含要移动的文件列表的项目,并将其内容传递给任务:
<ItemGroup>
<FilesToMove Include="c:\source\App_Web_*.dll"/>
</ItemGroup>
MSBuild会在将正则表达式传递给任务执行程序之前展开它。所以稍后在某个目标中,您可以调用Move
任务:
<Target Name="Build">
<Move
SourceFiles="@(FilesToMove)"
DestinationFolder="C:\target"
/>
</Target>