打造史上最小尺寸.Net Core单文件应用程序
.Net Core支持將應用程序發布成單文件進行部署和分發。
以下示例將Windows應用作為獨立的單文件應用程序發布:
?dotnet?publish?-r?win-x64?-c?Release?/p:PublishSingleFile=true?/p:PublishTrimmed=true?/p:IncludeNativeLibrariesForSelfExtract=true查看publish目錄,確實只有一個文件,但是尺寸比較大,這還僅僅是一個Hello World程序,就有將近21M。
有沒有辦法讓文件尺寸變得更小呢?
bflat
首先,下載最新版bflat(https://github.com/MichalStrehovsky/bflat/releases),并解壓到D:\bflat-0.0.1-win64\(任意目錄皆可)。
然后,在項目目錄下運行如下命令:
D:\bflat-0.0.1-win64\bflat.exe?build?Program.cs編譯完成后,生成的文件Program.exe大小只有2.69M,差不多是原來的1/10了。
這還不是最神奇的,再試試加上參數后運行:
D:\bflat-0.0.1-win64\bflat.exe?build?--no-reflection?--no-stacktrace-data??--no-globalization?--no-exception-messages?Program.cs文件大小只有734K!而且能夠正常運行。
這算不算史上最小尺寸.Net Core單文件應用程序?!
結論
bflat是結合Roslyn和NativeAOT的實驗性編譯器。因此,您可以使用高性能CoreCLR GC和本機代碼生成器 (RyuJIT) 訪問最新的C#功能。
就目前來說,bflat只能作為一個玩具。可以看到它只能編譯單個cs文件,如果我加入nuget包,則無法編譯。
但是,bflat現在還是0.0.1版本,想象一下,如果繼續發展下去,能夠打造真的微型應用程序的話,還是很有吸引力的。
如果你覺得這篇文章對你有所啟發,請關注我的個人公眾號”My IO“,記住我!
總結
以上是生活随笔為你收集整理的打造史上最小尺寸.Net Core单文件应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于c#:Filter Serilog日
- 下一篇: asp.net ajax控件工具集 Au