压缩文件夹MSBuild中的文件

时间:2017-11-23 07:15:40

标签: msbuild zip directory

名为 Test_UL 的文件夹包含 Test_file_UL.exe Test_file_UL.iso Test_file_UL.txt 等文件。

我需要将 Test_file_UL.exe Test_file_UL.iso 文件压缩到 Test.zip ,不包括 Test_file_UL.txt < / em>的

如何使用MSBuild执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以通过为所需项目创建ItemGroup,然后将该项目组传递给powershell cmdlet来执行此操作。

<ItemGroup>
  <ZipFiles Include="Test_UL\Test_file_UL.exe" />
  <ZipFiles Include="Test_UL\Test_file_UL.iso" />
</ItemGroup>

适用item groups的所有常规规则,因此您可以进行任何需要的过滤。

然后调用powershell来压缩文件:

<Target Name="CreateZip">
    <Exec Command="PowerShell -NoProfile -Command Compress-Archive @(ZipFiles->'%(Identity)', ',') -DestinationPath $(ZipName)" />
</Target>
  • Compress-Archive是PowerShell中提供的PowerShell cmdlet 5以后。
  • @(ZipFiles-&gt;&#39;%(身份)&#39;,&#39;,&#39;)是MSBuild Transform, 将文件更改为以逗号分隔的列表。

还有一些MSBuild扩展程序可以添加压缩/压缩目标,但我总是发现只需快速调用PowerShell就可以了。