2010-05-25 109 views
1

我不得不压缩我的文件夹和子文件夹使用的MSBuild,我一直在寻找的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"/> 

当我做到这一点,只是不停地将所有将文件添加到zip文件中的特定子文件夹中,而不是将其添加到特定的子文件夹中。

我错过了一些东西,任何人都可以帮助这里请。

回答

1

我相信你需要有一个RemoveRoot属性的值。

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"/> 
+0

FWIW,对ZipFiles Include和RemoveRoot使用$(TargetDir)将定位构建输出文件并创建一个平面ZIP – dlchambers 2016-04-20 17:42:47

0

以来,没有人回答初,我继续使用7号邮编,命令行实用程序,做到这一点。