.NET 8发布后全球化不变模式忽略所有覆盖设置问题
.NET 8项目发布到IIS后全球化不变模式(Invariant Globalization)被强制设为true的问题
问题详情
将.NET 8项目发布到IIS后,无论采取何种操作,全球化不变模式始终被设置为true。已确认运行时模板会更新相关项,但即便模板中设置为false,仍会被忽略并强制设为true。本地运行时该值为false,仅在发布后出现此问题。
发布设置
- 配置:Release
- 目标框架:net8.0
- 部署模式:依赖框架
- 目标运行时:win-x64
已尝试的解决方法
- 在项目文件中添加配置:
<InvariantGlobalization>false</InvariantGlobalization>
- 在项目文件中添加运行时宿主配置项:
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="false" />
- 在Web.config中设置环境变量:
<environmentVariable name="DOTNET_SYSTEM_GLOBALIZATION_INVARIANT" value="false" />
- 修改
runtimeconfig.template.json中的配置(原文件配置如下,已改为false):
{ "configProperties": { "System.Globalization.Invariant": true } }
- 尝试发布后执行PowerShell脚本修改配置,日志显示已将值设为
false,但部署到服务器后查看文件,该值仍为true,暂不确定是否为权限问题。
当前临时解决办法
每次发布后手动修改服务器上的app.runtimeconfig.json文件,将System.Globalization.Invariant设为false。
内容的提问来源于stack exchange,提问作者Xiodrade
相关产品推荐
相关产品推荐

