You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

命令行运行.NET Core 3.1应用时DOTNET_ENVIRONMENT配置被忽略问题

.NET Core 3.1 命令行无法读取appsettings.Development.json 排查方案

1. 确认文件存在与复制配置

  • 首先确认项目根目录下存在appsettings.Development.json文件
  • 右键该文件在Visual Studio中打开属性页,确认「复制到输出目录」配置为 如果较新则复制 或 始终复制,避免编译后输出目录缺少该文件

2. 确认命令执行的工作目录

  • Visual Studio启动项目时默认工作目录为.csproj文件所在的项目根目录,命令行执行时需要保持相同的工作目录:
    • 执行dotnet run命令时,需要cd到包含.csproj的项目根目录下运行
    • 执行编译后的dll(dotnet 你的项目名.dll)时,需要cd到包含该dll的输出目录下运行,且该目录下要有对应的配置文件

3. 确认环境变量配置正确

  • .NET Core 3.1识别的环境变量名为ASPNETCORE_ENVIRONMENT,你提到的ASPNET_ENVIRONMENT是旧版ASP.NET Framework的变量,无法被.NET Core识别
  • 在执行启动命令前,先在当前终端执行命令验证环境变量是否生效:
    • Windows cmd:echo %ASPNETCORE_ENVIRONMENT%、echo %DOTNET_ENVIRONMENT%
    • Windows PowerShell:$env:ASPNETCORE_ENVIRONMENT、$env:DOTNET_ENVIRONMENT
    • Linux/macOS终端:echo $ASPNETCORE_ENVIRONMENT、echo $DOTNET_ENVIRONMENT
  • 如果输出不是Development,可以临时在当前终端指定变量后启动:
    Windows cmd示例:
    set ASPNETCORE_ENVIRONMENT=Development
    dotnet run
    
    PowerShell示例:
    $env:ASPNETCORE_ENVIRONMENT="Development"
    dotnet run
    
    Linux/macOS示例:
    ASPNETCORE_ENVIRONMENT=Development dotnet run
    

4. 检查配置加载逻辑

  • 如果你在Program.cs中自定义了ConfigureAppConfiguration配置,确认没有遗漏环境配置文件的加载逻辑,默认加载逻辑参考:
    config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
          .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
    

内容的提问来源于stack exchange,提问作者JoelFan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:24:03