0

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 アーカイブのルートの内部を取得する方法について何か考えはありますか?

4

1 に答える 1

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 />
于 2013-06-20T13:52:19.193 に答える