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

Ron*_*ald 0 msbuild msbuildextensionpack

我正在寻找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)"/>
Run Code Online (Sandbox Code Playgroud)

运行此文件时,文件确实已添加到zip存档中,但不会添加到根目录中.相反,它会创建一个与我的项目路径相对应的文件层次结构

Projects/MyProject/SomeFolder/AnotherFolder/myfile.xml
Run Code Online (Sandbox Code Playgroud)

有关如何获取myfile.xml.zip存档根目录的任何想法?

Ron*_*ald 5

对不起,我匆匆忙忙.刚刚在这个问题的答案中找到了解决方案.

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 />
Run Code Online (Sandbox Code Playgroud)