2019-8-31-dotnet-core-发布只带必要的依赖文件
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
dotnet core 发布只带必要的依赖文件
|
lindexi
|
2019-08-31 16:55:58 +0800
|
2019-2-1 15:26:2 +0800
|
dotnet
|
在使用 dotnet core 发布独立项目的时候,会带上大量依赖的库,但是通过微软提供的工具可以去掉一些在代码没有用到的库。
本文介绍的工具是 Microsoft.Packaging.Tools.Trimming 这是一个预览的工具,需要从 myget.org 下载
通过这个工具可以分析有哪些 dll 不是必须的
这个工具使用方法很简单,不过需要先点击 nuget 源添加 https://dotnet.myget.org/F/dotnet-core/api/v3/index.json 才可以
添加方法十分简单,本文这里就不说了
通过 nuget 安装 Microsoft.Packaging.Tools.Trimming 库,这个库是预览版,需要勾选预览才能找到
然后编辑一下 csproj 文件
<PropertyGroup>
<TrimUnusedDependencies>true</TrimUnusedDependencies>
<RootPackageReference>false</RootPackageReference>
</PropertyGroup>
这里添加的属性 TrimUnusedDependencies 就是表示删除不需要的依赖,这里的依赖就是相对于 Root 寻找的依赖,也就是不需要的 PackageReferences 都不会放在发布文件
如果不知道如何编辑 csproj 文件,有一个简单的方法就是在发布的时候加上参数 /p:TrimUnusedDependencies=true 就可以
dotnet publish --self-contained true /p:TrimUnusedDependencies=true
建议是在 build 的时候也使用 /p:TrimUnusedDependencies=true 参数,这样就可以发现一些动态使用的类没有引用
实际我测试通过这个方法没有去掉多少dll不如使用 CoreRT 编译为 Native 文件
Reducing the size of self-contained .NET Core applications
2019-8-31-dotnet-core-发布只带必要的依赖文件的更多相关文章
- dotnet core 发布只带必要的依赖文件
在使用 dotnet core 发布独立项目的时候,会带上大量依赖的库,但是通过微软提供的工具可以去掉一些在代码没有用到的库. 本文介绍的工具是 Microsoft.Packaging.Tools.T ...
- dotnet core 发布只有一个 exe 的方法
在 dotnet core 发布的时候,会使用很多文件,这样发给小伙伴使用的时候不是很清真,本文告诉大家一个非官方的方法通过 warp 将多个文件打包为一个文件 和之前相同的方式发布一个 dotnet ...
- 使用Visual Studio 2019将ASP.NET Core发布为linux-arm64程序
前言 前段时间入手了一台树莓派4B,一直闲置未使用,最近工作需要,要在上面跑下.NET Core程序,由于树莓派4B使用的是ARM架构,并且支持64位操作系统,为了充分发挥树莓派性能,我的这台树莓派安 ...
- dotnet core 发布环境变量配置 dev/stage/prod
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-2.2 https://d ...
- dotnet core 发布配置(测试数据库和正式数据库自动切换)
一.起源 在进行项目开发时,常常要求开发环境,测试环境及正式环境的分离,并且不同环境运行的参数都是不一样的,比如监听地址,数据库连接信息等.当然我们把配置信息保存到一个文件中,每次发布的时候,可以先修 ...
- dotnet core调试docker下生成的dump文件
最近公司预生产环境.net core应用的docker容器经常出现内存暴涨现象,有时会突然吃掉几个G,触发监控预警,造成容器重启. 分析了各种可能原因,修复了可能发生的内存泄露,经测试本地正常,但是发 ...
- 2017-03-04 dotnet core网站发布到Linux系统中
今天开始学习dotnet core的开发,距离Visual Stuio 2017正式版的发布,也就是VS20周岁的生日还有三天,在我的电脑上安装的是VS2017 Enterprise RC版, 在VS ...
- dotnet core 项目
项目 常用命令 我们使用dotnet core 命令行来创建项目及进行编译,发布等,比较常用的dotnet core 命令 如下: dotnet new [arguments] [options] 创 ...
- 支付宝AopSdk在dotnet core下的实现
随着项目都迁移到了dotnet core下,阿里的支付宝也需要随着项目迁移.之前在.Net Framework下用到了阿里提供的AopSdk和F2FPay两个程序集,支付宝官方提供的只支持Framew ...
随机推荐
- NX二次开发-UFUN重命名工程图UF_DRAW_rename_drawing
NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <uf_part.h> UF_initialize ...
- python round, ceil, flooor
round(num, n) 保留n位小数 round(80.23456, 2) : 80.23 round(100.000056, 3) : 100.0 round(-100.000056, 3) : ...
- c# ToString()格式大全(转)
stringstr1 =string.Format("{0:N1}",56789); //result: 56,789.0stringstr2 =str ...
- postman中如何传数组
方法一: postman的传参: java接收: package com.nps.base.xue.xd.groovyEngine import com.google.gson.Gson import ...
- Android Telephony分析(五) ---- TelephonyRegistry详解
本文紧接着上一篇文章<Android Telephony分析(四) —- TelephonyManager详解 >的1.4小节.从TelephonyRegistry的大部分方法中: 可以看 ...
- Python+Django+ansible playbook自动化运维项目实战✍✍✍
Python+Django+ansible playbook自动化运维项目实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受 ...
- linux下svn 客户端使用方式
输入 yes 开始 checkout服务器上的文件到本地目录 2.将文件 添加文件到某个目录下(是svn的服务器checkout下来的目录中) 3. 提交到服务器 4 .即可在服务器目录看到(wind ...
- sql中取出字符串中数字
select substring(reverse('0->星光'),PATINDEX('%[0-9]%',reverse('0->星光')),1)
- windows下mysql8.0.x简单安装!
1.官网下载mysql安装包并解压到自己喜欢的目录 2.在解压的目录下,添加my.ini配置文件,内容如下:[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录 下面是我 ...
- VBS脚本完美实现开机延时启动
目录 概述 vbs内容示例: vbs示例语句分析 自定义vbs脚本 一些问题和解决方法 概述 系统开机时,顺带自动启动了不少驱动程序,使得电脑开机后鼠标要呆滞许久.为了加快windows的开机速度 ...