Добавление файлов в zip-архив с помощью MSBuild ExtensionPack Zip создает всю файловую структуру

Я смотрю на MSBuild.Extensionpack.Compression.Zip добавить пользовательский шаг сборки, где я хотел бы добавить некоторые файлы в существующий ZIP-архив.

<ItemGroup>
  <Files Include="$(MSBuildProjectDirectory)\SomeFolder\AnotherFolder\*.xml">
  </Files>
</ItemGroup>

<Message Text="@(Files)"></Message>

<MSBuild.ExtensionPack.Compression.Zip TaskAction="AddFiles" 
                        CompressFiles="@(Files)" ZipFileName="$(MyZipArchive)"/>

При запуске файлы действительно добавляются в zip-архив, но не в корневой каталог. Вместо этого он создает файловую иерархию, которая соответствует пути моего проекта

Projects/MyProject/SomeFolder/AnotherFolder/myfile.xml

Любые мысли о том, как я могу получить myfile.xml внутри корня.zip архива?

1 ответ

Решение

Извините, я спешил. Просто нашел решение в ответе на этот вопрос.

Действие AddFiles имеет необязательное свойство RemoveRoot, Здесь вы должны указать строку корня, который хотите удалить.

Окончательное решение выглядит следующим образом.

<ItemGroup>
  <Files Include="$(MSBuildProjectDirectory)\SomeFolder\AnotherFolder\*.xml">
  </Files>
</ItemGroup>

<MSBuild.ExtensionPack.Compression.Zip TaskAction="AddFiles" 
                        CompressFiles="@(Files)" ZipFileName="$(MyZipArchive)"
                        RemoveRoot=$(MSBuildProjectDirectory)\SomeFolder\AnotherFolder />
Другие вопросы по тегам