Добавление файлов в 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 />