.NET 运行时设置

.NET 运行时设置

05b83182fe9631f6e9c80a346456d67b.png

.NET 5+(包括 .NET Core 版本)支持使用配置文件和环境变量在运行时配置 .NET 应用程序的行为。如果出现以下情况,则运行时配置是一个不错的选择:

  • 你不拥有或控制应用程序的源代码,因此无法以编程方式对其进行配置。

  • 应用程序的多个实例在单个系统上同时运行,并且你想要将每个实例配置为获得最佳性能。

备注

本文档正在编写中。如果你注意到此处提供的信息不完整或不准确,可以创建一个问题告知我们,或提交拉取请求以解决问题。要了解如何提交 dotnet/docs 存储库的拉取请求,请参阅参与者指南.

.NET 提供以下机制,它们用于配置运行时应用程序行为:

  • runtimeconfig.json 文件

  • MSBuild 属性

  • 环境变量

提示

如果使用环境变量配置运行时选项,会将设置应用于所有 .NET 应用。如果在 runtimeconfig.json 或项目文件中配置运行时选择,则仅将设置应用于此应用程序。

某些配置值还可以通过调用 AppContext.SetSwitch 方法以编程方式进行设置。

文档此部分的文章按类别组织,例如调试和垃圾回收。如果适用,将显示 runtimeconfig.json 文件、MSBuild 属性、环境变量的配置选项;对于 .NET Framework 项目,还会显示 app.config 文件的配置选项以便交叉引用。

runtimeconfig.json

构建项目时,将在输出目录中生成 [appname].runtimeconfig.json 文件。如果项目文件所在的文件夹中存在 runtimeconfig.template.json 文件,它包含的任何配置选项都将插入到 [appname].runtimeconfig.json 文件中。如果自行构建应用,请将所有配置选项放在 runtimeconfig.template.json 文件中。如果只是运行应用,请将其直接插入 [appname].runtimeconfig.template.json 文件中。

备注

后续生成中将覆盖 [appname].runtimeconfig.template.json 文件。如果应用的 OutputType 不是 Exe,但你想将配置选项从 runtimeconfig.template.json 复制到 [应用名称].runtimeconfig.json,则必须在项目文件中将 GenerateRuntimeConfigurationFiles 显式设置为 true 。对于需要 runtimeconfig.json 文件的应用,此属性默认设置为 true。在 runtimeconfig.json 文件的 configProperties 部分指定运行时配置选项。如下:

"configProperties": {"config-property-name1": "config-value1","config-property-name2": "config-value2"
}

示例 [appname].runtimeconfig.template.json 文件

如果要将这些选项放在输出 JSON 文件中,请将它们嵌套在 runtimeOptions 属性下。

{"runtimeOptions": {"tfm": "netcoreapp3.1","framework": {"name": "Microsoft.NETCore.App","version": "3.1.0"},"configProperties": {"System.GC.Concurrent": false,"System.Threading.ThreadPool.MinThreads": 4,"System.Threading.ThreadPool.MaxThreads": 25}}
}

示例 runtimeconfig.template.json 文件

如果要将这些选项放在模板 JSON 文件中,请省略 runtimeOptions 属性。

{"configProperties": {"System.GC.Concurrent": false,"System.Threading.ThreadPool.MinThreads": "4","System.Threading.ThreadPool.MaxThreads": "25"}
}

MSBuild 属性

可使用 SDK 样式 .NET Core 项目的 .csproj 或 .vbproj 文件中的 MSBuild 属性设置某些运行时配置选项。MSBuild 属性优先于在 runtimeconfig.template.json 文件中设置的选项。

下面是一个示例 SDK 样式项目文件,其中包含用于配置运行时行为的 MSBuild 属性:

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>netcoreapp3.1</TargetFramework></PropertyGroup><PropertyGroup><ConcurrentGarbageCollection>false</ConcurrentGarbageCollection><ThreadPoolMinThreads>4</ThreadPoolMinThreads><ThreadPoolMaxThreads>25</ThreadPoolMaxThreads></PropertyGroup></Project>

用于配置运行时行为的 MSBuild 属性记录在每个区域各自的文章中,例如垃圾回收。它们还在 SDK 样式项目的 MSBuild 属性参考的运行时配置部分中列出。

环境变量

环境变量可用于提供一些运行时配置信息。如果使用环境变量配置运行时选项,会将设置应用于所有 .NET Core 应用。指定为环境变量的配置旋钮通常带有 DOTNET_ 前缀。

备注

.NET 6 为用于配置 .NET 运行时行为的环境变量标准化前缀 DOTNET_ 而不是 COMPlus_。但是,COMPlus_ 前缀仍将继续正常工作。如果使用的是早期版本的 .NET 运行时,则环境变量仍应该使用 COMPlus_ 前缀。

可以使用 Windows 控制面板、命令行或通过在 Windows 和 Unix 系统上调用 Environment.SetEnvironmentVariable(String, String) 方法以编程方式定义环境变量。

下面的示例演示如何在命令行中设置环境变量:

# Windows
set DOTNET_GCRetainVM=1# Powershell
$env:DOTNET_GCRetainVM="1"# Unix
export DOTNET_GCRetainVM=1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch——学习笔记

2019独角兽企业重金招聘Python工程师标准>>> Relational DB -> Databases -> Tables -> Rows -> Columns Elasticsearch -> Indices -> Types -> Documents -> Fields 转载于:https://my.oschina.net/u/2307114/blog/799905

opencv python安装linux_Ubuntu16.04、Python3.6下安装opencv4遇到的问题

1.安装opencv在网上搜索Ubuntu16.04下安装opencv4想必一定搜到大把的编译源码安装opencv的教程&#xff0c;其实安装opencv只需一句命令&#xff1a;pip3 install opencv-python说实在我着实没想明白为什么那么多人要编译源码安装呢。。。2.python3.6中导入opencv库终端敲入pyt…

linux之用wget下sublime简单使用总结

1、简单介绍wget 1&#xff09;、wget命令在linux系统上面主要通过url下载&#xff0c; wget url 2&#xff09;、比如我们需要断点续传我们加上参数 -c wget -c url 2、下载sublime 1&#xff09;电脑32位 wget http://c758482.r82.cf2.rackcdn.com/Sublime\ Text\ 2.0.2.tar.…

查看端口被占用的进程号然后结束进程(解决端口被进程占用的问题)

在dos窗口下输入netstat -ano|findstr 8080&#xff08;这里指所占用的端口号&#xff09; taskkill /pid 6865&#xff08;这里至查询出来占用8080端口的pid码&#xff09;转载于:https://www.cnblogs.com/tianhao/p/4231874.html

Python操作Excel——win32com模块和xlrd+xlwt+xlutils组合

今天&#xff0c;接到一个任务&#xff0c;要生成大约两百个excel文件&#xff0c;从2006年到2013年&#xff0c;每个月两个文件&#xff0c;这些文件中除了几个关于日期的单元格不同外&#xff0c;其他数据都相同&#xff0c;所以就想到可以用python写一个小脚本&#xff0c;自…

linux c之管道的介绍、创建关闭和简单读写(父进程向子进程写入数据)

1、管道介绍、 进程间通信的几种主要手段中。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具 有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 2、管道特点、 管道是半双工的,数…

C# dynamic 类型用法举例

dynamic类型允许编写忽略编译期间的类型检查的代码。编译器假定&#xff0c;给dynamic类型的对象定义的任操作都是有效的。如果该操作无效&#xff0c;则在代码运行之前不会检测该错误&#xff0c;如下面的示例所示:这个示例没有编译&#xff0c;因为它调用了staticPerson.GetF…

在微信小程序中绘制图表(part2)

本期大纲 1、确定纵坐标的范围并绘制 2、根据真实数据绘制折线 相关阅读&#xff1a;在微信小程序中绘制图表&#xff08;part1&#xff09;在微信小程序中绘制图表&#xff08;part3&#xff09; 关注我的 github 项目 查看完整代码。 确定纵坐标的范围并绘制 为了避免纵坐标的…

dynamic_cast

dynamic 转换时的类必须有虚函数&#xff0c;否则会编译报错。 #include <iostream> using namespace std;class A { public:int a ;int b;void prt(void){std::cout <<"prt here" << std::endl;}//virtual ~A(){}; };class B: public A { };class…

Windows 8.1 新增控件之 CommandBar

上一篇为大家介绍了AppBar 的相关内容&#xff0c;本篇继续介绍CommandBar 的使用方法。与AppBar 相比而言&#xff0c;CommandBar 在开发使用方面较为单一&#xff0c;在按键布局上分为主控区&#xff08;Primary Commands&#xff09;与辅控区&#xff08;Secondary Commands…

很抱歉,你不涨工资,正是因为你“太努力”!

太多人干了一辈子工作却还在原地踏步太多人在公司里任劳任怨最终还一事无成你或许欠缺的不是努力而是思维聪明的人都会投资自己想办法让自己变得无可替代这样老板离不开你的那一天就是你升职加薪的时候快来和我一起看看哪些公众号都能帮你提高能力呢&#xff1f;募格课堂ID&…

php文件锁解锁是删除对应的文件_软件 | 文件解锁强制删除工具 Wise Force Deleter v1.49...

有过电脑里面想删除一个文件&#xff0c;死活删除不了的痛苦吗&#xff1f;用尽了各种办法&#xff0c;关闭进程&#xff0c;删除关联文件&#xff0c;卸载对应的程序&#xff0c;然而还是无法删除&#xff0c;甚至都进入了安全模式删除&#xff0c;依然文件纹丝不动&#xff0…

.NET 7 预览版来啦,我升级体验了

听说.NET 7 来了&#xff0c;站长怎能不尝鲜呢&#xff0c;在除夕当天将体验情况简单汇报下&#xff0c;然后迎新春喽&#xff1a;本文目录.NET 7 详情&#xff08;Proposed .NET 7 Breaking Changes #7131&#xff09;.NET 7 SDK下载尝鲜体验3.1 安装.NET 7 SDK3.2 Hello Word…

【emWin】例程六:设置颜色

实验指导书及代码包下载&#xff1a; 链接&#xff1a;http://pan.baidu.com/s/1kVr25vT 密码&#xff1a;xbkj 实验现象&#xff1a;

定制安装centos6.4系统 上汽集团线上环境

准备环境&#xff1a;先手动安装一台centos6.4系统①建立目录iso&#xff0c;挂载镜像yum -y install createrepo mkisofsmkdir /isomount /dev/cdrom /media②copy镜像文件到 iso目录cp -a /media/ /iso③ 编辑ks.cfg文件cat /iso/media/ks.cfg##############################…

搜索引擎 ElasticSearch 之 步步为营2 【基础概念】

在正式学习 ElasticSearch 之前&#xff0c;首先看一下 ElasticSearch 中的基本概念。 这些概念将在以后的章节中出现多次&#xff0c;所以花15分钟理解一下是非常值得的。 英文好的同学&#xff0c;请直接移步官网&#xff1a;&#xff08;http://www.elasticsearch.org/guide…

Eclipse之Android项目名有红感叹号的解决办法

问题&#xff1a; Eclipse之Android项目名有红感叹号的解决办法 代码都没有错&#xff0c;然后项目有红感叹号 1、找问题原因 点击项目右键&#xff0c;然后点击Build Path,然后再Configure Buil Path,然后再去看Library,发现有个jar丢失&#xff0c;是Android-19,路径和我本地…

渣男劈腿,两个女生却逼他做出选择,结果......

1 生一个女儿有多重要&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 真实版眼睛瞪得像铜铃&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 地表最强撞衫&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 过年时最怕遇见的人&#xff08;素材…