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

使用MSBuild ExtensionPack zip将文件添加到zip会创建整个文件结构,msbuild,msbuildextensionpack,Msbuild,Msbuildextensionpack,我正在考虑添加一个自定义构建步骤,在该步骤中,我希望将一些文件添加到现有的.zip存档中 <ItemGroup> <Files Include="$(MSBuildProjectDirectory)\SomeFolder\AnotherFolder\*.xml"> </Files> </ItemGroup> <Message Text="@(Files)"></Message> <MSBuild.Exten

我正在考虑添加一个自定义构建步骤,在该步骤中,我希望将一些文件添加到现有的.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归档文件的根目录中获取
myfile.xml
有什么想法吗?

对不起,我太仓促了。刚刚找到解决办法

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 />

对不起,我太匆忙了。刚刚找到解决办法

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 />