我有一个包含大量 *.xml 文件的文件夹。
我需要将所有这些文件分别压缩到一个单独的 zip 文件中。
示例: - 文件1.xml - 文件2.xml - 文件3.xml
msbuild 之后: - 文件1.zip - 文件2.zip - file3.zip
请注意,我不需要将所有文件压缩在一个 ZIP 中,并且该文件夹中的 .xml 文件的数量每次都会有所不同。
有没有办法通过自动化的 msbuild 任务来做到这一点?
提前致谢。
最佳答案
使用Zip task来自MSBuild Extension Pack 。那么您的 MSBuild 目标可能类似于:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="ZipFiles">
<UsingTask TaskName="MSBuild.ExtensionPack.Compression.Zip"
AssemblyFile="..\MSBuildExtensionPack\Releases\4.0.4.0\MSBuild.ExtensionPack.dll" />
<Target Name="ZipFiles">
<ItemGroup>
<FilesToZip Include="xmls\**\*.xml"/>
</ItemGroup>
<Message Text="Zipping '%(FilesToZip.Identity)'" Importance="high" />
<MSBuild.ExtensionPack.Compression.Zip TaskAction="Create"
CompressFiles="%(FilesToZip.FullPath)"
ZipFileName="%(FilesToZip.Filename).zip"
RemoveRoot="%(FilesToZip.RootDir)%(FilesToZip.Directory)" />
</Target>
</Project>
关于MsBuild 将目录中的每个文件压缩为单独的 Zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9436197/