假設我有一個簡單的「 Hello World」控制檯應用程序,我想發送給朋友來運行。朋友沒有安裝.NET Core,因此我知道我須要爲他構建一個獨立的應用程序。很簡單,我只需在項目目錄中運行如下命令:app
dotnet publish -r win-x64 -c Release --self-contained
朋友是多少位的操做系統,你就標記要發佈成什麼樣子的, --self-contained這個標籤的解釋自包含,就是說你的相關依賴項與你的應用程序不掛鉤,將會產生依賴,缺乏一個dll就會缺胳膊少腿。因此這樣你就必須將整個文件夾都託給朋友。 優化
看看文件夾裏的狀況,它會發生什麼?293個文件,這直接將.NET Core的運行時也打包了,這很是Nice!不過我這文件真的不少,我很難受!朋友會說:這什麼鬼?exe在哪裏?spa
因此.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 咱們拭目以待吧。3d
不經過DotCli發佈能夠修改一下項目文件,再經過VisualStudio發佈!code
<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越來越好!orm