MsBuild Zip каждый файл в каталоге в отдельных файлах Zip - PullRequest
2 голосов
/ 24 февраля 2012

У меня есть папка с большим количеством * .xml файлов.

Мне нужно, чтобы все эти файлы были упакованы в отдельный zip-файл.

Пример: - file1.xml - file2.xml - file3.xml

После msbuild: - file1.zip - file2.zip - file3.zip

Обратите внимание, что мне не нужно архивировать все файлы в одном ZIP-архиве, и количество XML-файлов в папке будет меняться каждый раз.

Есть ли способ сделать это с помощью автоматизированной задачи msbuild?

Заранее спасибо.

1 Ответ

3 голосов
/ 25 февраля 2012

Используйте задачу Zip из 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>
...