需要安裝nuget包Microsoft.Packaging.Tools.Trimming然後利用如下命令發佈dotnet publish -r win10-x64 -c release --self-contained true /p:TrimUnusedDependencies=true發佈完成之 ...
需要安裝nuget包Microsoft.Packaging.Tools.Trimming
然後利用如下命令發佈
dotnet publish -r win10-x64 -c release --self-contained true /p:TrimUnusedDependencies=true
發佈完成之後,實際上還是有不少dll文件,只不過由原來的200多個減少了70多個。
然後還有個瘦身的方法
項目地址https://github.com/dgiagio/warp
國內這毛線網可能有點慢
關於windows摘錄如下
Windows
Create a simple console application
PS C:\Users\Diego\Devel> mkdir myappPS C:\Users\Diego\Devel> cd myappPS C:\Users\Diego\Devel\myapp> dotnet new consolePS C:\Users\Diego\Devel\myapp> dotnet runHello World!PS C:\Users\Diego\Devel\myapp>Publish the application with native installer for win10-x64
runtime
The application should be published to bin/Release/netcoreapp2.1/win10-x64/publish/
Download warp-packer
If you save warp-packer
in a directory in your PATH, you only need to download it once.
Create your self-contained application
PS C:\Users\Diego\Devel\myapp> .\warp-packer --arch windows-x64 --input_dir bin/Release/netcoreapp2.1/win10-x64/publish --exec myapp.exe --output myapp.exeRun your self-contained application
PS C:\Users\Diego\Devel\myapp> .\myapp.exeHello World!PS C:\Users\Diego\Devel\myapp>More information about your self-contained application
PS C:\Users\Diego\Devel\myapp> "{0:N2} MB" -f ((Get-Item myapp.exe).Length / 1MB)28.51 MB坑爹的情況是,這個warp程式會一直下載不下來,然後嘗試文檔中提到的用power shell下載
在powsershell 中執行如下語句
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls" ; Invoke-WebRequest https://github.com/dgiagio/warp/releases/download/v0.3.0/windows-x64.warp-packer.exe -OutFile warp-packer.exe
孬好速度比瀏覽器要一點,下載完後,準備打包
按照指令格式,拼裝指令,示例如下,然後就可以將exe和DLL打包成1個exe了
PS E:\DijingTools\Dijing.Update> .\warp-packer.exe --arch windows-x64 --exec Dijing.Update.exe --input_dir .\bin\release\netcoreapp2.1\win10-x64\publish\ --output Dijing.Update.exe
然後測試一下exe,可以正常,這樣部署的時候,就不用帶很多程式了
PS E:\DijingTools\Dijing.Update\bin\Debug\netcoreapp2.1\publish> .\Dijing.Update.exe http://zhcto.com/packa ges/106SP7fc10b15-8dd8-4ecc-ba02-f52a833b3783.zip 文件夾E:\DijingTools\Dijing.Update\bin\Debug\netcoreapp2.1\publish\temp創建成功 升級包開始下載 升級包下載中...3833,157757,2% 升級包下載中...13587,157757,8% 升級包下載中...46063,157757,29% 升級包下載中...71479,157757,45% 升級包下載中...137015,157757,86% 升級包下載中...140667,157757,89% 升級包下載中...157757,157757,100% 升級包下載完成 檢測到升級包已存在 升級包解壓完成 升級文件遍歷完成,文件個數為:5 升級包文件覆蓋完成 臨時文件夾刪除完成
程式啟動成功 PS E:\DijingTools\Dijing.Update\bin\Debug\netcoreapp2.1\publish>
還有一種CoreLR的東西,也可以瘦身,不過註入關係得自己寫個表,就懶得弄了