使用MSBuild ExtensionPack zip将文件添加到zip中创建整个文件结构



我正在查看MSBuild.Extensionpack.Compression.Zip添加一个自定义构建步骤,我想在其中添加一些文件到现有的。zip存档。

<ItemGroup>
  <Files Include="$(MSBuildProjectDirectory)SomeFolderAnotherFolder*.xml">
  </Files>
</ItemGroup>
<Message Text="@(Files)"></Message>
<MSBuild.ExtensionPack.Compression.Zip TaskAction="AddFiles" 
                        CompressFiles="@(Files)" ZipFileName="$(MyZipArchive)"/>

运行此命令时,文件确实被添加到zip存档中,但没有添加到根目录中。相反,它创建一个文件层次结构,该层次结构对应于我的项目

的路径。
Projects/MyProject/SomeFolder/AnotherFolder/myfile.xml

关于如何在。zip存档的根目录中获得myfile.xml,有什么想法吗?

对不起,我有点急了。我在这个问题的答案中找到了答案。

AddFiles动作有一个可选属性RemoveRoot。这里必须指定要删除的根的字符串。

最终解是这样的。

<ItemGroup>
  <Files Include="$(MSBuildProjectDirectory)SomeFolderAnotherFolder*.xml">
  </Files>
</ItemGroup>
<MSBuild.ExtensionPack.Compression.Zip TaskAction="AddFiles" 
                        CompressFiles="@(Files)" ZipFileName="$(MyZipArchive)"
                        RemoveRoot=$(MSBuildProjectDirectory)SomeFolderAnotherFolder />

最新更新