.net core 为dotnetcore Windows服务设置环境变量--仅进程,而不是系统或用户
我们的开发人员正在用.NETCore3.1编写一些Windows服务 据我所知,核心开发的典型模式是检查DOTNET_环境变量以切换不同的配置 出于理由,我们希望避免设置系统级甚至用户级的机器环境变量。其中一些原因是:.net core 为dotnetcore Windows服务设置环境变量--仅进程,而不是系统或用户,.net-core,configuration,.net Core,Configuration,我们的开发人员正在用.NETCore3.1编写一些Windows服务 据我所知,核心开发的典型模式是检查DOTNET_环境变量以切换不同的配置 出于理由,我们希望避免设置系统级甚至用户级的机器环境变量。其中一些原因是: 推出新服务器时要设置的其他内容 可能希望在同一台服务器上运行不同的“环境”——可能不是针对服务,而是针对其他命令行应用 对于IIS启动的Kestrel托管应用程序,可以在web.config中设置额外的环境值。这无法应用于命令行应用程序 这方面的最佳做法是什么?在启动可执行文
- 推出新服务器时要设置的其他内容
- 可能希望在同一台服务器上运行不同的“环境”——可能不是针对服务,而是针对其他命令行应用
- 当我们开始进行容器化时,设置容器级环境变量显然是一种方法,但是对于这样的共享Windows服务器(实际上是VM),我们需要一种不同的方法
- 我们已经进行了审查。尽管它的目标是ASP.NET核心,而不是核心中的控制台/服务应用程序
DOTNET\uuu
的命令行参数。.NET使用DOTNET\uu
前缀进行和,但不用于用户配置
因此,如果使用命令行参数
--environment Development
,则应将其转换为DOTNET\u environment=Development
。这被测试为与.NET 5.0 worker服务一起使用。您应该能够在命令行上通过配置,即MyService.exe--environment Development
这是一个非常好的主意,如果您给出答案,我将接受它。