2012-02-24 84 views
2

我有一个包含大量* .xml文件的文件夹。MsBuild在单独的Zip文件中压缩目录中的每个文件

我需要将所有这些文件压缩到一个单独的zip文件中。

例子: - file1.xml - file2.xml - file3.xml

的MSBuild后: - file1.zip - file2.zip - file3.zip

注意,我不需要压缩一个ZIP内的所有文件,并且文件夹内的.xml文件数量每次都会有所不同。

有没有办法用自动msbuild任务做到这一点?

在此先感谢。

回答

3

使用MSBuild Extension PackZip task。那么你的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> 
+0

非常好。感谢KMoraz! – 2012-02-27 18:55:52

相关问题