GitXplorerGitXplorer
M

PublishAotCompressed

public
154 stars
6 forks
3 issues

Commits

List of commits on branch master.
Verified
f3696aea2b36cf8b167bf035d049f5b014059d9b

Update main.yml

MMichalStrehovsky committed 4 months ago
Unverified
adfc6f426c003f06f201dd6f9bc626e1361c1a0a

Update PublishAotCompressed.targets

MMichalStrehovsky committed 4 months ago
Verified
a1a946219c98b4f4aedec5502f0c3bb6b572a1d9

Add win-x86 target, and upgrade upx v4.2.4 (#14)

VVAllens committed 4 months ago
Verified
d105daf11fb2ee1d36c7bb1aaf0472eb31d665c4

Upgrade to UPX 4.2.2 (#13)

kkevingosse committed a year ago
Verified
d115a09fbc26477a5ab217b7f5711ae8350c21cb

Add ARM64 target (#10)

kkevingosse committed a year ago
Verified
277fa321f2f71b24747efab6355bf1207c6bfa30

Update to UPX 4.0.2, add PublishLzmaCompressed property (#8)

MMichalStrehovsky committed 2 years ago

README

The README file for this repository.

PublishAotCompressed

This is a NuGet package with an MSBuild target to compress results of PublishAot with UPX. Simply add a reference to this package and publish with PublishAot as usual. The result of AOT compilation will be compressed. UPX typically achieves 60% or more size savings. To achieve even more compression at the cost of startup time, specify <PublishLzmaCompressed>true</PublishLzmaCompressed> property as well.

UPX will in-memory decompress the program at launch. This is typically not observable.

A Hello World style program with <UseSystemResourceKeys>true</UseSystemResourceKeys> and <InvariantGlobalization>true</InvariantGlobalization> (two documented size savings options that pretty much everyone should enable) compressed with UPX is around 830 kB in size, fully self-contained. (On Linux, don't forget to also set <StripSymbols>true</StripSymbols>, the documented switch to place debugging symbols into a separate file.)