关于 .Net Core runtimeconfig 文件说明
在项目的bin\debug\netcoreapp${Version}下面能够找到这个${AppName}.runtimeconfig.json文件,简单来说,它就是用来定义应用程序所用的共享框架(.Net Core App)以及运行时选项 的一个文件。
一个简单的例子
{
"runtimeOptions": {
"tfm": "netcoreapp2.2",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "2.2.0"
}
}
}
1、用来决定以哪个版本的.net core 来启动应用程序的参数
runtimeconfig.json
{
"runtimeOptions": {
"framework": {
"name": "Microsoft.AspNetCore.App",
"version": "2.2.0" //指的是可运行的最低版本
}
}
}
.csproj 文件中
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.0" />
</ItemGroup>
覆盖最小值(不更改文件)的方法是使用dotnet exec --fx--version
到.Net Core >= 3.0 的时候, 可以使用多个共享框架,并且不再作为Nuget包引用,原先做为Nuget包显示,但实际上并不由Nuget来管理,有可能是开发团队设计上的一个失误。
runtimeconfig.json
{
"runtimeOptions": {
"frameworks": [
{
"name": "Microsoft.AspNetCore.App",
"version": "3.0.0"
},
{
"name": "Microsoft.WindowsDesktop.App",
"version": "3.0.0"
}
]
}
}
.csproj 文件中
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<FrameworkReference Include="Microsoft.WindowsDesktop.App" />
</ItemGroup>
在.Net Core 3.0 会自动在更高的版本上运行
默认情况下, 会自动匹配主要和次要版本号,在其中找到最高的版本来运行,但如果找不到的话,它就有可能会去找更高的版本来运行,也可以回退以适应缺少特定运行时环境,下面的rollForward选项可以配置策略,在 这儿 可以找到一些说明
runtimeconfig.json
{
"runtimeOptions": {
"rollForward": "Major"
}
}
rollForward 可用的值
LatestPatch |
前滚到最高的补丁版本,但这会禁用次要版本前滚 |
Minor |
默认使用的值,如果缺少请求的次要版本,请前滚到最低的较高次要版本; 如果存在请求的次要版本,则使用 LatestPatch 策略。 |
Major |
如果请求主要版本缺失,则前滚至最低的较高主要版本和最低次要版本。 如果存在请求的主要版本,则使用 Minor 策略。 |
LatestMinor |
即使请求的次要版本存在,也可以前滚到最高次要版本。 |
LatestMajor |
即使请求主要版本存在,也可以前滚到最高主要和最高次要版本。 |
Disable |
不要向前滚动,仅绑定到指定的版本,不建议将此策略用于正常用途, 因为它禁用前滚到最新修补程序的功能,建议仅用于测试。 |
在.NET Core 3.0之前,默认情况下会使用安装在计算机上的最高补丁版本的 .Net Core 运行,可以使用如下配置来禁用
注意,此配置在.Net Core 3.0之后已经被废弃
runtimeconfig.json
{
"runtimeOptions": {
"applyPatches": false
}
}
在.NET Core 3.0之前,如果在计算机上找不适合的 .Net Core 版本(匹配主要和次要版本号,默认情况下最高补丁版本),他有可能会使用计算机上安装的最新版本,通过以下配置来控制
注意,此配置在.Net Core 3.0之后已经被废弃
runtimeconfig.json
"runtimeOptions": {
"rollForwardOnNoCandidateFx": 1
}
}
举个例子说明下,如果当前 .Net Core Version = 2.10
|
可兼容的.Net Core版本 |
| 0 | >=2.1.0, < 2.2.0 |
| 1 |
默认的 >=2.1.0, < 3.0.0 |
| 2 | >=2.1.0 |
详细说明可参考这篇文章 Roll Forward On No Candidate Fx
2:运行时包存储区
这是包在磁盘上的存储目录(通常情况下,在 macOS/Linux 上是 /usr/local/share/dotnet/store,在 Windows 上是 C:/Program Files/dotnet/store)
runtimeconfig.json
{
"runtimeOptions": {
"tfm": "netcoreapp2.1" //tfm: target framework
}
}
.csproj
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
3:从其他地方加载Assembly的路径(类似于PrivatePath)
runtimeconfig.json
{
"runtimeOptions": {
"additionalProbingPaths": [
"D:\\Project\\XXXX"
]
}
}
.csproj
<ItemGroup>
<AdditionalProbingPath Include="D:\Project\XXX" />
</ItemGroup>
.csproj只会影响到runtimeconfig.dev.json,这个文件只会在开发的时候有用,到生产环境无效了,这儿要注意
4:运行时设置
这是一个Key Value 键值对的设置,可以用来配Thread Pool Size, AppDomain ,Globalization 等的行为 ,详细可以参考 CLR-Configuration-knobs
runtimeconfig.json
{
"runtimeOptions": {
"configProperties": {
"key": "value"
}
}
}
除了Net Core 中已定义的,如果需要,也可以配置一些自定义的项,参考如下
runtimeconfig.json
{
"runtimeOptions": {
"configProperties": {
"DefaultTheme": "blue",
"DefaultLanguage": "zh-CN",
"IsEnableJwt" : true
}
}
}
.csproj
<ItemGroup>
<RuntimeHostConfigurationOption Include="DefaultTheme" Value="blue" />
<RuntimeHostConfigurationOption Include="DefaultLanguage" Value="zh-CN" />
<RuntimeHostConfigurationOption Include="IsEnableJwt" Value="true" />
</ItemGroup>
C# 获取自定义的值
var defaultTheme = System.AppContext.GetData("DefaultTheme") as string;
关于 .Net Core runtimeconfig 文件说明的更多相关文章
- 使用GDB 追踪依赖poco的so程序,core dump文件分析.
前言 在windows 下 系统核心态程序蓝屏,会产生dump文件. 用户级程序在设置后,程序崩溃也会产生dump文件.以方便开发者用windbg进行分析. so,linux 系统也有一套这样的东东- ...
- gdb调试常用实用命令和core dump文件的生成
1.生成core dump文件的方法: $ ulimit -c //查看是否为0 如果为0 $ ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxx ...
- linux下生成core dump文件方法及设置
linux下生成core dump文件方法及设置 from:http://www.cppblog.com/kongque/archive/2011/03/07/141262.html core ...
- linux 下如何打开core dump文件开关
dump文件可以在程序crash时,方便我们查看程序crash的地方和上下文信息.在window下,要能生成dump文件,需要自己编写相应的代码.不过现在网上可以找到相应的代码,只要把它下载后然后加到 ...
- Linux使用笔记: 定制core dump文件的文件名
在开发过程中,当一个Linux程序异常退出时,我们可以通过core文件来分析它异常的详细原因.缺省情况下,Linux在程序异常时不产生core文件,要想让程序异常退出时产生core dump文件,需要 ...
- NET Core静态文件的缓存方式
NET Core静态文件的缓存方式 阅读目录 一.前言 二.StaticFileMiddleware 三.ASP.NET Core与CDN? 四.写在最后 回到目录 一.前言 我们在优化Web服务的时 ...
- NET Core 静态文件及JS包管理器(npm, Bower)的使用
NET Core 静态文件及JS包管理器(npm, Bower)的使用 文章目录 在 ASP.NET Core 中添加静态文件 使用npm管理JavaScript包 使用Bower管理JavaScri ...
- .net core版 文件上传/ 支持批量上传,拖拽以及预览,bootstrap fileinput上传文件
asp.net mvc请移步 mvc文件上传支持批量上传,拖拽以及预览,文件内容校验 本篇内容主要解决.net core中文件上传的问题 开发环境:ubuntu+vscode 1.导入所需要的包:n ...
- .Net Core 图片文件上传下载
当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口. ...
随机推荐
- 7月18日刷题记录 二分答案跳石头游戏Getting
通过数:1 明天就要暑假编程集训啦~莫名开心 今天做出了一道 二分答案题(好艰辛鸭) 1049: B13-二分-跳石头游戏(二分答案) 时间限制: 5 Sec 内存限制: 256 MB提交: 30 ...
- 洛谷P3877 [TJOI2010]打扫房间 解题报告
首先整理一下条件: 1.恰好进出每个需打扫的房间各一次 2.进出每个房间不能通过同一个门 (其实前两个条件是一回事) 3.要求每条路线都是一个闭合的环线 4.每条路线经过的房间数大于2 让你在一个n* ...
- Polya定理与Burnside引理
也许更好的阅读体验 \(Burnside引理\) 公式 \(\begin{aligned}L=\frac{1}{|G|}\sum_{i=1}^{|G|}D_{G_i}\end{aligned}\) 一 ...
- [OpenGL] 绘制并且判断凹凸多边形、自相交多边形。
#include <iostream> #include <ctime> #include <GL/glut.h> #include <math.h> ...
- 【Arduino】66种传感器模块系列实验(2)---光敏电阻模块
实验二:光敏电阻传感器模块我手里这块是三针版的,挺秀气吧 光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器,其工作原理是基于内光电效应.光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低, ...
- 一文彻底搞懂Java中的环境变量
一文搞懂Java环境变量 记得刚接触Java,第一件事就是配环境变量,作为一个初学者,只知道环境变量怎样配,在加上各种IDE使我们能方便的开发,而忽略了其本质的东西,只知其然不知其所以然,随着不断的深 ...
- Calico 网络通信原理揭秘
Calico 是一个纯三层的数据中心网络方案,而且无缝集成像 OpenStack 这种 Iaas 云架构,能够提供可控的 VM.容器.裸机之间的 IP 通信.为什么说它是纯三层呢?因为所有的数据包都是 ...
- 【Algorithm】选择排序法
简单的选择排序法思想: * 首先找到数组中最小的元素,将它和数组第一个元素互换位置(如果第一个元素就是最小那么它就和自己交换). * 其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素互换位置 ...
- 多线程编程(Linux C)
多线程编程可以说每个程序员的基本功,同时也是开发中的难点之一,本文以Linux C为例,讲述了线程的创建及常用的几种线程同步的方式,最后对多线程编程进行了总结与思考并给出代码示例. 一.创建线程 多线 ...
- 我的ubuntu kylin中mentohust的使用历程
1首先下载mentohus 最新版下载(包括源码):http://code.google.com/p/mentohust/downloads/list 2打开终端(Ctrl+Alt+T) 输入sudo ...