dotnet core瘦身发布

原文:dotnet core瘦身发布

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

原文地址:https://www.cnblogs.com/lonelyxmas/p/10592090.html

时间: 2024-10-08 14:18:47

dotnet core瘦身发布的相关文章

dotnet core 跨平台编译发布

vs2017 建立的项目,在项目目录 ,执行 dotnet publish -r ubuntu.15.04-x64 dotnet publish -r linux-x64 dotnet publish -r osx-x64 dotnet publish -r ubuntu-x64 dotnet publish -r centos-x64 会把所需要的dotnet core所有dll打包.不需要另外安装dotnet core sdk https://docs.microsoft.com/zh-cn

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

一,.NET Core 自宿主应用程序个头很大 发布.NET Core应用程序有两个方式,一种是“便携式”,一种是“自宿主式”.便携式发布时,目标程序不带.net core运行环境,所以“个头”很小,可能只有几十K几百K字节,但是它需要用户的目标系统上安装.NET CORE 框架:自宿主式发布出来的程序,自带运行时和框架类库,自成一体,不需要客户机安装.NET CORE环境,部署简单方便. 看看一个简单的“Hello World!” 控制台程序有多大: 修改 csproj文件,添加目标系统: 用

边缘化搭建 DotNet Core 2.1 自动化发布和部署(下)

写在前面 本篇文章是上一篇边缘化搭建 DotNet Core 2.1 自动化发布和部署(上)的后续操作,本文主要讲解如何开启Docker Remote API,开启Remote API后的权限安全问题.配置Jenkins构建项目,并在云服务器上构建成功.废话不多说,我们一起来动手操作吧. 先决条件 1.一台Debain 9系统 x86 服务器 硬件环境:1核2G 40G硬盘. 2. x86服务器成功安装并运行Docker环境(本文不阐述安装过程,读者可查阅参考文献) 2.根据上一篇边缘化搭建 D

Docker 简单发布dotnet core项目

原文:https://www.cnblogs.com/chuankang/p/9474591.html docker发布dotnet core简单流程 照着步骤来基本没错 但是有几个要注意的地方: vs2019创建基于.net core 2.2的项目,Dockerfile 文件要移动到解决方案的根目录 docker下载花了很多时间 慢得要死 不知道是不是买的服务器问题 中间还配置了docker的下载地址还是啥的 用来加速 感觉没啥用 就没写上来,之后再补充把 具体的步骤: 1.安装docker

发布xxl-job executor dotnet core 执行器的实现

DotXxlJob [github][https://github.com/xuanye/DotXxlJob] xxl-job的dotnet core 执行器实现,支持XXL-JOB 2.0+ 1 XXL-JOB概述 [XXL-JOB][1]是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用.以下是它的架构图 2. 关于DotXxlJob产生 在工作中调研过多个任务调度平台,如Hangfire.基于Quatz.NE

iOS安装包瘦身的那些事儿

在我们提交安装包到App Store的时候,如果安装包过大,有可能会收到类似如下内容的一封邮件: 收到这封邮件的时候,意味着安装包在App Store上下载的时候,有的设备下载的安装包大小会超过100M.对于超过100M的安装包,只能在WIFI环境下下载,不能直接通过4G网络进行下载. 在这里,我们提交App Store的安装包大小为67.6MB,在App Store上显示的下载大小和实际下载下来的大小,我们通过下表做一个对比: iPhone型号 系统 AppStore 显示大小 下载到设备大小

如何给你的Android 安装文件(APK)瘦身

如何给你的Android 安装文件(APK)瘦身 本文翻译自:Putting Your APKs on Diet           原作者:Cyril Mottier Android的apk文件越来越大了这已经是一个不争的事实.在Android 还是最初版本的时候,一个app的apk文件大小也还只有2 MB左右,到了现在,一个app的apk文件大小已经升级到10MB到20MB这个范围了.apk文件大小的爆炸式增长主要是因为用户对app质量的期待越来越高以及开发者的开发经验增长,具体体现在以下几

.NET Core 最小化发布

.NET Core 应用最小化独立部署发布,.NET Core 默认应用独立发布,大概占用50m左右的空间,不同的系统大小有所区别. .NET Core 的发布之前我也有所介绍,.NET Core 跨平台发布(dotnet publish) 具体可以看这篇文章. 今天来看看.NET Core 最小化发布部署,可以节省一半左右的空间. 使用 dotnet new 命令创建应用 然后打开 project.json 文件,然后将 frameworks 部分替换为以下内容:   "frameworks&

北京时间28号0点以后Scott Hanselman同志台宣布dotnet core 1.0 rtm

今日占住微信号头条的好消息<终于来了!微软.Net Core 1.0下载放出>.本人立马跑到官网http://dot.net看了一下,仍然是.net core 1.0 Preview 1版本. 看来该文所提供的下载链接应该是提前泄露的版本了吧. 有网友说,Red Hat DevNation的第二天也就是美太平洋时间27号上午(北京时间28号0点以后) Scott Hanselman同志才会登台宣布dotnet core 1.0 rtm. 查了一下dotnet cli tools 进度,如下: