Release模式发布Blazor Server项目为何包含appsettings.Development.json
问题原因
默认.NET 项目(包含 Blazor Server 类型)的项目配置中,不会根据构建模式(Debug/Release)自动过滤不同环境的appsettings.*.json文件:所有标记为Content属性的配置文件,默认都会被完整拷贝到发布输出目录,Release 模式本身没有内置过滤开发环境配置的逻辑,所以你会在发布目录中看到三套配置文件。
修复方案
直接修改项目根目录下的.csproj文件,添加 Release 模式下的文件排除规则即可:
- 右键 Visual Studio 项目列表中的项目名称,选择「编辑项目文件」
- 在文件的
Project根节点内添加如下配置:
<ItemGroup Condition="'$(Configuration)' == 'Release'"> <Content Remove="appsettings.Development.json" /> </ItemGroup>
- 保存项目文件后重新执行 Release 发布,开发环境配置文件就不会再被输出到发布目录。
如果需要同时排除其他非生产环境的配置文件,只需要在<Content Remove>节点中新增对应文件路径,多个路径用分号分隔即可,示例如下:
<Content Remove="appsettings.Development.json;appsettings.Staging.json" />
补充说明
项目默认保留所有配置文件的逻辑,是为了适配灵活的环境切换需求:很多场景下会通过服务器的ASPNETCORE_ENVIRONMENT环境变量指定运行环境,而非依赖构建模式绑定环境配置,所以默认不会做自动过滤。
内容的提问来源于stack exchange,提问作者query
相关产品推荐
相关产品推荐

