C# 其中是VS 2019中IIS Express调试器的.Net核心MVC appsettings.json文件

C# 其中是VS 2019中IIS Express调试器的.Net核心MVC appsettings.json文件,c#,visual-studio,.net-core,asp.net-core-mvc,visual-studio-2019,C#,Visual Studio,.net Core,Asp.net Core Mvc,Visual Studio 2019,我需要编辑appsettings.json文件中的连接字符串,以便调试.Net核心MVC应用程序。当我使用IIS Express调试器运行应用程序时,我的应用程序将构建为bin\Debug\netcoreapp2.2。在这个目录中,我正在使用测试所需的值编辑我的appsettings.Development.json配置文件。我知道该应用程序使用了appsettings.json文件的正确变体。但是,我不认为调试器正在查看bin\Debug\netcoreapp2.2中的文件,因为当我编辑该文件

我需要编辑appsettings.json文件中的连接字符串,以便调试.Net核心MVC应用程序。当我使用IIS Express调试器运行应用程序时,我的应用程序将构建为
bin\Debug\netcoreapp2.2
。在这个目录中,我正在使用测试所需的值编辑我的appsettings.Development.json配置文件。我知道该应用程序使用了appsettings.json文件的正确变体。但是,我不认为调试器正在查看
bin\Debug\netcoreapp2.2
中的文件,因为当我编辑该文件时,更改不会出现在我的应用程序中。IIS Express调试器从何处加载appsettings.json文件

屏幕截图了解更多内容。

我从这个工具栏运行调试器

调试器将文件构建到
bin\Debug\netcoreapp2.2

然后编辑必要的appsettings.json文件。在以后的版本中不会覆盖该文件,因为我将“复制到输出目录”属性设置为“如果更新,则复制”

我验证了ASPNETCORE_环境变量对于调试器设置为“Development”

但是,当我去调试我的应用程序时,我会在项目的appsettings.json中得到默认连接字符串,而不是在
bin\debug\netcoreapp2.2
目录的appsettings.json中得到修改后的连接字符串


默认情况下,
IConfiguration
读取项目文件夹下的
*.json
文件

要在其他位置读取
*.json
文件,如
bin/Debug/netcoreapp2.2
,您可以像

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.AddJsonFile(
                    "bin/Debug/netcoreapp2.2/appsettings.Development.json", optional: false, reloadOnChange: true);
            });

嗯,那不太理想。是否有办法将其配置为查看bin文件夹?也许这个问题可以帮助您:@ChrisStillwell为什么将其放在根文件夹中并不理想?@AliK,主要是因为我添加连接字符串的文件受源代码管理,我不想冒意外将凭据推送到存储库的风险。如果我可以编辑bin文件夹中的文件,我就不必担心这个问题。我会有appsettings.json,它是您始终提交给源代码管理的主文件,然后是一个名为appsettings.development.json的副本,它是您在visual studio中启动应用程序时运行的副本。.development.json永远不会提交给源代码管理,每个开发人员都可以拥有自己的.dev.json文件副本。这种方法效果很好。对我来说,我只是在新代码中添加了一个
#if DEBUG
指令,所以我只在调试时读取该文件。谢谢
public class HomeController : Controller
{
    private readonly IConfiguration configuration;
    public HomeController(IConfiguration configuration)
    {
        this.configuration = configuration;
    }
    public IActionResult Index()
    {
        return Ok(configuration.GetConnectionString("DefaultConnection"));
        //return View();
    }