标签: createitem

尝试排除执行递归副本的某些扩展(MSBuild)

我正在尝试使用MSBuild从文本文件中读取文件列表,然后执行递归复制,将这些目录文件的内容复制到某个临时区域,同时排除某些扩展名(例如.tmp文件)

我已经设法使用CreateItem和MSBuild复制任务轻松完成上述大部分任务,无论我做什么,CreateItem任务都忽略了我的Exclude参数:

<PropertyGroup>
  <RootFolder>c:\temp</RootFolder>
  <ExcludeFilter>*.tmp</ExcludeFilter>
  <StagingDirectory>staging</StagingDirectory>
</PropertyGroup>
<ItemGroup>
  <InputFile Include="MyFile.txt" />
</ItemGroup>

<Target Name="Build">
  <ReadLinesFromFile File="@(InputFile)">
    <Output ItemName="AllFolders" TaskParameter="Lines" />
  </ReadLinesFromFile>

  <CreateItem Include="$(RootFolder)\%(AllFolders.RelativeDir)**"
              Exclude="$(ExcludeFilter)">
    <Output ItemName="AllFiles" TaskParameter="Include" />
  </CreateItem>

  <Copy SourceFiles="@(AllFiles)"
        DestinationFolder="$(StagingDirectory)\%(RecursiveDir)" 
Run Code Online (Sandbox Code Playgroud)

'MyFile.txt'的示例内容:

somedirectory\
someotherdirectory\
Run Code Online (Sandbox Code Playgroud)

(即路径是相对的$(RootFolder)- 提到这个,因为我读到某个地方可能是相关的)

我已经尝试了大量不同的Exclude过滤器组合,但我似乎无法让它正确排除我的.tmp文件 - 有没有办法用MSBuild做这个而不诉诸xcopy?

msbuild createitem

16
推荐指数
1
解决办法
9138
查看次数

标签 统计

createitem ×1

msbuild ×1