基于 `MSBuild Task` 的构建时资源压缩器,用于在构建时将文件压缩后作为 `嵌入的资源` 编译到最终输出文件中。A build time resource compressor based on the `MSBuild Task`, used to compress files and compile them as `EmbeddedResource` into the final output file during build time.
$ dotnet add package ResourceCompressor基于 MSBuild Task 的构建时资源压缩器,用于在构建时将文件压缩后作为 嵌入的资源 编译到最终输出文件中。
A build time resource compressor based on the MSBuild Task, used to compress files and compile them as EmbeddedResource into the final output file during build time.
ResourceCompressor 包<ItemGroup>
<PackageReference Include="ResourceCompressor" Version="1.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
CompressedEmbeddedResource 声明需要压缩的嵌入资源EmbeddedResource 为 CompressedEmbeddedResource<ItemGroup>
<CompressedEmbeddedResource Include="embeddedFile.ext" />
</ItemGroup>
embeddedFile.ext 使用GZip压缩嵌入后,资源名称会变更为 embeddedFile.ext.gzipCompressedEmbeddedResource 可选属性CompressionAlgorithm<ItemGroup>
<CompressedEmbeddedResource Include="embeddedFile.ext" CompressionAlgorithm="GZip" />
</ItemGroup>
GZipGZipGenerateCompressedFile<ItemGroup>
<CompressedEmbeddedResource Include="embeddedFile.ext" GenerateCompressedFile="PreserveNewest" />
</ItemGroup>
AlwaysAlways: 总是生成PreserveNewest: 仅在文件变更时生成GeneratedFileFormat<ItemGroup>
<CompressedEmbeddedResource Include="embeddedFile.ext" GeneratedFileFormat="{0}.gz" />
</ItemGroup>
string.Format 进行格式化,参数 0 为原始文件名{0}{0}