假設(shè)我有一個(gè)簡單的“ Hello World”控制臺(tái)應(yīng)用程序,我想發(fā)送給朋友來運(yùn)行。朋友沒有安裝.NET
Core,所以我知道我需要為他構(gòu)建一個(gè)獨(dú)立的應(yīng)用程序。很簡單,我只需在項(xiàng)目目錄中運(yùn)行以下命令:
dotnet publish -r win-x64 -c Release --self-contained
朋友是多少位的操作系統(tǒng),你就標(biāo)記要發(fā)布成什么樣子的,?--self-contained
這個(gè)標(biāo)簽的解釋自包含,就是說你的相關(guān)依賴項(xiàng)與你的應(yīng)用程序不掛鉤,將會(huì)產(chǎn)生依賴,缺少一個(gè)dll就會(huì)缺胳膊少腿。所以這樣你就必須將整個(gè)文件夾都托給朋友。?
?看看文件夾里的情況,它會(huì)發(fā)生什么?293個(gè)文件,這直接將.NET
Core的運(yùn)行時(shí)也打包了,這非常Nice!不過我這文件真的很多,我很難受!朋友會(huì)說:這什么鬼?exe在哪里?
?
?所以.NET Core給我們提供了一個(gè)命令標(biāo)志,?dotnet publish -r win-x64 -c Release
/p:PublishSingleFile=true
?您會(huì)注意到,我們不再指定自包含標(biāo)志。這是因?yàn)榧僭O(shè)如果您將其打包為單個(gè)exe,則將需要它的所有依賴關(guān)系。這一定說得通。我們試著去運(yùn)行該命令。隨后打開publish文件,我們發(fā)現(xiàn)!這也太干凈了吧!
但是文件還是有點(diǎn)大呀,這可只是一個(gè)Hello World呀!,我們在思考如何進(jìn)行優(yōu)化大小,當(dāng)然這一點(diǎn)微軟也給我們考慮到了!!!
使用命令?dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true
/p:PublishTrimmed=true?我們拭目以待吧。
?
?
不通過DotCli發(fā)布可以修改一下項(xiàng)目文件,再通過VisualStudio發(fā)布!
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup>
<OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>//發(fā)布平臺(tái) <PublishSingleFile>true
</PublishSingleFile>//是否單個(gè)exe </PropertyGroup> <PropertyGroup> <PublishTrimmed>
true</PublishTrimmed>//啟用壓縮 </PropertyGroup> </Project>
祝.NET Core愈來愈好!
熱門工具 換一換