需要安装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

PS C:\Users\Diego\Devel\myapp> dotnet publish -c Release -r win10-x64

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.

PS C:\Users\Diego\Devel\myapp> [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

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.exe

Run 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的东西,也可以瘦身,不过注入关系得自己写个表,就懒得弄了

dotnet core瘦身发布的更多相关文章

  1. dotnet core 通过 frp 发布自己的网站

    很多时候写出来的网站只能自己内网访问,本文告诉大家如何通过 Frp 将自己的 asp dotnet core 网站发布到外网,让小伙伴访问自己的网站 通过 frp 的方式,可以解决自己的服务器性能太差 ...

  2. 流程自动化RPA,Power Automate Desktop系列 - DotNet Core打包并发布Nuget Package

    一.背景 DotNet Core通常基于Nuget来实现包管理,如果你想要把自己的实现共享给其他人,通常我们需要把本地项目打包好,然后发布到对应的Nuget Server上,以便于其他人可以查找.安装 ...

  3. dotnet core 跨平台编译发布

    vs2017 建立的项目,在项目目录 ,执行 dotnet publish -r ubuntu.15.04-x64 dotnet publish -r linux-x64 dotnet publish ...

  4. 手把手教你用Jenkins自动发布dotnet core程序

    Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...

  5. dotnet core 使用 CoreRT 将程序编译为 Native 程序

    现在微软有一个开源项目 CoreRT 能通过将托管的 .NET Core 编译为单个无依赖的 Native 程序 这个项目现在还没发布,但是能尝试使用,可以带来很多的性能提升 使用 CoreRT 发布 ...

  6. asp dotnet core 从 Frp 获取用户真实 IP 地址

    我在本地开一个服务,然后通过 Frp 让小伙伴可以在外网访问我的 API 连接,但是直接通过 RemoteIp 拿到的是本地的地址.本文告诉小伙伴如何通过 Frp 可以拿到用户的真实 IP 地址 我写 ...

  7. .NET跨平台实践:Linux .Net Core自宿主应用程序瘦身记

    一,.NET Core 自宿主应用程序个头很大 发布.NET Core应用程序有两个方式,一种是“便携式”,一种是“自宿主式”.便携式发布时,目标程序不带.net core运行环境,所以“个头”很小, ...

  8. .NET Core剪裁器Zack.DotNetTrimmer升级瘦身引擎,并支持剪裁计划的录制和回放

    上周,我发布了对.NET Core程序进行瘦身的开源软件Zack.DotNetTrimmer,与.NET Core内置的剪裁器相比,Zack.DotNetTrimmer不仅对程序的剪裁效果更好,而且还 ...

  9. 这可能是最low的发布dotnet core站点到centos7

    前言 不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash..我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的. 正文 什么是.net core,bal ...

随机推荐

  1. word2vec_文本相似度

    #提取关键词#关键词向量化#相似度计算 from jieba import analyseimport numpyimport gensim # 实现给出任意字符串,获取字符串中某字符的位置以及出现的 ...

  2. UVA 10821 Constructing BST

    BST: binary search tree. 题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemi ...

  3. mysql.lib 的使用

    一 说明      mysql.lib 提供了很多方便的操作,同时结合 vector 使用十分方便. 二 使用    1 声明需要用到的变量 static MYSQL s_mysql[DATABASE ...

  4. User_Agent大全

    'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Ver ...

  5. GC垃圾收集器分类

    参考https://blog.csdn.net/tjiyu/article/details/53983650 Java垃圾收集器组合: 新生代收集器:Serial.ParNew.Parallel Sc ...

  6. day08作业---函数

    '''2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者.'''#学会了 原来 range(len(iter)) 是 从零到len-1 的数的组合 建新放在 ...

  7. Rest架构风格

    一.REST介绍:: 1.REST是英文 Representational State Transfer的缩写 -- 表象化状态转变 或者 表述性状态转移 1.1 REST是 Web服务的一种架构风格 ...

  8. decode 横竖转换

    select rq 日期,sum(decode(shengfu,'胜',1,'负',0)) 胜,sum(decode(shengfu,'负',1,'胜',0)) 负 from tmp group by ...

  9. 55.UIbutton点击切换颜色

    #import "ViewController.h" #define width_w     [UIScreen mainScreen].bounds.size.width #de ...

  10. set集合的排序

    在hibernate的OneToMany的实体关联的时候,one端的set是无序的,可是需要按照顺序来搞的话就比较麻烦了. 下面给出一个例子. Set<DiaryPicture> diar ...