5

MSBuild で出力フォルダーを圧縮するにはどうすればよいですか? ファイル名には、他の場所で設定される変数を使用する必要があります。

4

2 に答える 2

4

フォルダー構造を保持せずにすべてのファイルをパッケージ化する場合。

<ItemGroup>
  <ZipFiles Include="$(OutDir)\**\*.*" />
</ItemGroup>
<Target Name="AfterBuild" Condition="'$(Configuration)'=='Release'">
  <Zip ZipFileName="$(OutDir)\output.zip" WorkingDirectory="$(OutDir)" Files="@(ZipFiles)" Flatten="True" Quiet="true" />
</Target>

フォルダ構造を保持したい場合

<Target Name="AfterBuild" Condition="'$(Configuration)'=='Release'">
  <Zip ZipFileName="$(OutDir)\output.zip" WorkingDirectory="$(OutDir)" Files="@(ZipFiles)" Flatten="False" Quiet="true" />
</Target>

Flatten="True" は、すべてのディレクトリが削除され、ファイルが zip ファイルのルートに配置されることを意味します。

WorkingDirectoryは、zip ファイルのベースです。すべてのファイルは、作業ディレクトリから相対的に作成されます。

于 2018-07-03T07:19:37.453 に答える