.NET Core 3.0 发布小尺寸 self-contained 单体可执行程序
.NET Core 提供的發(fā)布應(yīng)用程序選項(xiàng) self-contained 是共享應(yīng)用程序的好方法,因?yàn)閼?yīng)用程序的發(fā)布目錄包含所有組件、運(yùn)行時(shí)和框架。您只需要告訴使用者應(yīng)用程序的入口 exe 文件,就可以使程序運(yùn)行起來,而不必?fù)?dān)心目標(biāo)計(jì)算機(jī)上是否存在.NET Core 運(yùn)行時(shí)和應(yīng)用框架。目前 .NET Core 3.0 Preview 6 已經(jīng)推出,也包含了更多新功能。其中一個(gè)有用的功能就是引入了 PublishTrimmed 發(fā)布標(biāo)志。此標(biāo)志可以很大程序上減少可執(zhí)行文件的大小并會(huì)創(chuàng)建一個(gè)修剪過的自包含單體可執(zhí)行文件。下面我們來看一下如何發(fā)布一個(gè)經(jīng)過修剪的單體可執(zhí)行文件。
.NET Core 3.0 中發(fā)布 self-contained 程序可以使用下面的命令:
?上面的命令執(zhí)行之后會(huì)在創(chuàng)建的發(fā)布文件夾中包含 self-contained 可執(zhí)行程序所需的所有文件,文件數(shù)大概有 100 個(gè)左右,如果想要在目標(biāo)計(jì)算機(jī)上運(yùn)行這個(gè)應(yīng)用程序,那就需要復(fù)制這個(gè)發(fā)布文件夾內(nèi)所有文件,似乎并不是那么方便,而且這些文件占用的空間也不算小。
這個(gè)問題在 .NET Core 3.0 Preview 5 中得到了解決。此版本引入了一個(gè) PublishSingleFile 發(fā)布標(biāo)志,用于生成一個(gè)單體 exe 可執(zhí)行文件。該發(fā)布標(biāo)志的使用方法如下:
或者在項(xiàng)目文件中配置如下節(jié)點(diǎn):
使用此發(fā)布標(biāo)志后只會(huì)生成一個(gè) exe 可執(zhí)行文件和符號(hào)文件。見下圖
現(xiàn)在只有一個(gè)可執(zhí)行文件了,但其文件大小有點(diǎn)兒小問題,一個(gè)可執(zhí)行程序接近 70MB 。上面說過,在 .NET Core 3.0 Preview 6 中引入了 PublishTrimmed 發(fā)布標(biāo)志,使用該發(fā)布選項(xiàng)將不會(huì)包含您未使用的類庫,以達(dá)到減小發(fā)布單體文件的尺寸。您可以將上面的兩個(gè)命令一起使用,如下:
或在項(xiàng)目文件中配置以上兩個(gè)發(fā)布標(biāo)志:
使用上面的兩個(gè)命令后,您會(huì)發(fā)現(xiàn),單體可執(zhí)行文件的尺寸只有 29MB 了。對于簡單的控制臺(tái)應(yīng)用程序來說,它仍然有點(diǎn)兒大,但請注意,這是一個(gè)包含了 .NET Core 運(yùn)行時(shí)的 self-contained 應(yīng)用程序。
以上就是我要介紹的全部內(nèi)容了。
原文鏈接:https://www.talkingdotnet.com/create-trimmed-self-contained-executable-in-net-core-3-0/
譯者注:?
參考鏈接:
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-6/
https://github.com/mono/linker/blob/master/src/ILLink.Tasks/README.md
原文鏈接:https://www.cnblogs.com/jRoger/p/create-trimmed-self-contained-executable-in-net-core-3-0.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總?http://www.csharpkit.com?
總結(jié)
以上是生活随笔為你收集整理的.NET Core 3.0 发布小尺寸 self-contained 单体可执行程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Linux的Windows子系统上(W
- 下一篇: 「Sqlserver」数据分析师有理由爱