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

无法将ASP.NET Core Web API发布为Development环境的问题

解决ASP.NET Core 8 Web API发布后默认运行在Production环境的问题

发布后的ASP.NET Core应用默认会使用Production环境,launchsettings.json仅在Visual Studio开发调试阶段生效,发布后不会被读取,所以你需要通过以下方式指定Development环境:

方法一:运行exe时临时设置环境变量

这是最灵活的方式,无需修改发布包或代码:

  • Windows命令提示符(CMD):
    set ASPNETCORE_ENVIRONMENT=Development && YourApiApp.exe
    
  • Windows PowerShell:
    $env:ASPNETCORE_ENVIRONMENT='Development'; .\YourApiApp.exe
    
  • Linux/macOS终端:
    ASPNETCORE_ENVIRONMENT=Development ./YourApiApp
    

方法二:修改发布配置,默认设置为Development环境

如果你希望发布后的应用默认以Development环境启动,可以修改Visual Studio的发布配置文件:

  1. 打开项目的Properties/PublishProfiles目录,找到对应的发布配置文件(比如FolderProfile.pubxml)
  2. 在<PropertyGroup>节点内添加以下配置:
    <EnvironmentName>Development</EnvironmentName>
    
  3. 重新发布项目,生成的exe默认会以Development环境启动(仍可被运行时的环境变量覆盖)

方法三:代码中强制指定默认环境(不推荐)

如果需要固定环境(灵活性差,不建议用于生产场景),可以在创建WebApplicationBuilder时直接指定:

using Microsoft.AspNetCore.Hosting;

var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
    EnvironmentName = Environments.Development
});

额外代码优化提示

你在Program.cs中手动构建了IConfiguration实例,其实WebApplication.CreateBuilder(args)已经默认加载了标准配置源(包括appsettings.json、appsettings.{EnvironmentName}.json、环境变量等),手动构建可能会导致配置重复或覆盖。建议移除手动构建的Configuration代码,直接使用builder.Configuration,比如:

// 移除这段手动构建的代码
// var configuration = new ConfigurationBuilder()...

// 直接使用builder.Configuration获取配置
var allowedOrigins = builder.Configuration.GetSection("AllowedOrigins").Value?.Split(",") ?? new string[] { "*" };

// Serilog配置也直接用builder自带的Configuration
builder.Host.UseSerilog((context, config) =>
    config.ReadFrom.Configuration(context.Configuration));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:46:28