我必须压缩我的文件夹和子文件夹使用MSbuild,我正在查看MSBuild扩展包,并尝试了这个
<ItemGroup>
<ZipFiles Include="\Test\Web\**\*.*" >
<Group>Release</Group>
</ZipFiles>
</ItemGroup>
<MSBuild.ExtensionPack.Compression.Zip TaskAction="Create" CompressFiles="@(ZipFiles)" ZipFileName="$(WorkingDir)%(ZipFiles.Group).zip"/>
当我这样做时,它只是将所有文件添加到root,而不是将其添加到zip文件中的特定子文件夹中。
我遗失了一些东西,请有人帮忙。
答案 0 :(得分:11)
您需要提供RemoveRoot
属性,此属性设置要从压缩文件路径中删除的根。 (More info)
<ItemGroup>
<ZipFiles Include="\Test\Web\**\*.*" >
<Group>Release</Group>
</ZipFiles>
</ItemGroup>
<MSBuild.ExtensionPack.Compression.Zip
TaskAction="Create"
CompressFiles="@(ZipFiles)"
ZipFileName="$(WorkingDir)%(ZipFiles.Group).zip"
RemoveRoot="\Test\Web"/>
答案 1 :(得分:1)
我认为你需要为RemoveRoot属性设置一个值。
答案 2 :(得分:0)
因为,没有人提前回答,我继续使用7 Zip,命令行实用工具来做到这一点。