假設我有一個簡單的“ Hello World”控制台應用程式,我想發送給朋友來運行。朋友沒有安裝.NET Core,所以我知道我需要為他構建一個獨立的應用程式。很簡單,我只需在項目目錄中運行以下命令: dotnet publish -r win-x64 -c Release --self-conta ...
假設我有一個簡單的“ Hello World”控制台應用程式,我想發送給朋友來運行。朋友沒有安裝.NET Core,所以我知道我需要為他構建一個獨立的應用程式。很簡單,我只需在項目目錄中運行以下命令:
dotnet publish -r win-x64 -c Release --self-contained
朋友是多少位的操作系統,你就標記要發佈成什麼樣子的, --self-contained這個標簽的解釋自包含,就是說你的相關依賴項與你的應用程式不掛鉤,將會產生依賴,缺少一個dll就會缺胳膊少腿。所以這樣你就必須將整個文件夾都托給朋友。
看看文件夾里的情況,它會發生什麼?293個文件,這直接將.NET Core的運行時也打包了,這非常Nice!不過我這文件真的很多,我很難受!朋友會說:這什麼鬼?exe在哪裡?
所以.NET Core給我們提供了一個命令標誌, dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true 您會註意到,我們不再指定自包含標誌。這是因為假設如果您將其打包為單個exe,則將需要它的所有依賴關係。這一定說得通。我們試著去運行該命令。隨後打開publish文件,我們發現!這也太乾凈了吧! 但是文件還是有點大呀,這可只是一個Hello World呀!,我們在思考如何進行優化大小,當然這一點微軟也給我們考慮到了!!!
使用命令 dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true 我們拭目以待吧。
不通過DotCli發佈可以修改一下項目文件,再通過VisualStudio發佈!
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWindowsForms>true</UseWindowsForms> <RuntimeIdentifier>win10-x64</RuntimeIdentifier>//發佈平臺 <PublishSingleFile>true</PublishSingleFile>//是否單個exe </PropertyGroup> <PropertyGroup> <PublishTrimmed>true</PublishTrimmed>//啟用壓縮 </PropertyGroup> </Project>
祝.NET Core愈來愈好!