Visual studio .Net Core通过选择配置在应用程序设置之间自动更改

Visual studio .Net Core通过选择配置在应用程序设置之间自动更改,visual-studio,asp.net-core,configuration,appsettings,Visual Studio,Asp.net Core,Configuration,Appsettings,我有很多连接字符串,我需要在不同的场景中使用它们,比如通过在VisualStudio中更改解决方案配置来进行实时、报告和测试。我花了很多时间在这上面,但我想不出一个解决办法。你知道吗 提前感谢。您可以为不同的环境设置不同的应用程序设置,例如: appsettings.Development.json appsettings.Staging.json appsettings.Production.json 等 然后在launchSettings.json中添加具有不同环境的不同配置文件以启动应用程

我有很多连接字符串,我需要在不同的场景中使用它们,比如通过在VisualStudio中更改解决方案配置来进行实时、报告和测试。我花了很多时间在这上面,但我想不出一个解决办法。你知道吗


提前感谢。

您可以为不同的环境设置不同的应用程序设置,例如:

appsettings.Development.json appsettings.Staging.json appsettings.Production.json 等 然后在launchSettings.json中添加具有不同环境的不同配置文件以启动应用程序

launchSettings.json

{ I设置:{ Windows身份验证:false, 匿名认证:对, 新闻界:{ 应用程序URL:http://localhost:49364, sslPort:0 } }, 简介:{ IIS Express开发:{ 命令名:IISExpress, 启动浏览器:对, 环境变量:{ ASPNETCORE_环境:开发 } }, IIS Express暂存:{ 命令名:IISExpress, 启动浏览器:对, 环境变量:{ ASPNETCORE_环境:登台 } }, IIS Express制作:{ 命令名:IISExpress, 启动浏览器:对, 环境变量:{ ASPNETCORE_环境:生产 } } } }
除了@Kahbazi-answer,我还想像这样更新我的答案

在你的情况下,你可以使用

例如,您有如下结构的appsetting.json

发展:{ Url:一些字符串 }, 阶段:{ Url:一些字符串 }, 产品:{ Url:一些字符串 } 我需要定义一个这样的模型类来存储信息

公共班级发展 { 公共字符串Url{get;set;} } 所以我们有了配置结构。我们最不需要的是在Startup.cs内注册:

services.Configureconfiguration.GetSectionDevelopment; 所以你可以这样使用:

私有只读IOptions\u webAppUrl; 公共电子邮件发送选项\u webAppUrl { _webAppUrl=_webAppUrl; } _webAppUrl.Value.Url; 这就是Microsoft如何设置多个。你可以看看,因为这是一篇很长的文章

以下是我如何基于环境使用json文件进行配置:

公开启动 i配置配置, IHostingEnvironment主机环境主机环境 { _配置=配置; _hostingEnvironment=hostingEnvironment; var builder=新配置生成器; if_hostingEnvironment.IsDevelopment { builder.AddUserSecrets; } 其他的 { 建设者 .SetBasePathhostingEnvironment.ContentRootPath .AddJsonFileappsettings.json,可选:false,重载更改:true .AddJsonFile$appsettings.{hostingEnvironment.EnvironmentName}.json,可选:true .添加环境变量; } } 另见: