2012-02-24 3 views
2

J'ai un dossier avec un grand nombre de fichiers * .xml.MsBuild Zip tous les fichiers du répertoire dans des fichiers Zip séparés

J'ai besoin que tous ces fichiers soient compressés dans un fichier zip séparé.

Exemple: - file1.xml - file2.xml - file3.xml

Après msbuild: - file1.zip - file2.zip - file3.zip

Notez que je vous n'avez pas besoin de zipper tous les fichiers dans un ZIP, et le nombre de fichiers .xml dans le dossier variera à chaque fois.

Est-il possible de le faire avec une tâche msbuild automatisée?

Merci d'avance.

Répondre

3

Utilisez le Zip task de MSBuild Extension Pack. Alors votre cible MSBuild peut être quelque chose comme:

<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

Excellent. Merci KMoraz! –

Questions connexes