全球化的运行时配置选项

固定模式

  • 确定 .NET Core 应用是否在全球化固定模式下运行,而无需访问特定于区域性的数据和行为。
  • 如果省略此设置,则应用将运行并有权访问文化数据。 它等效于将值设置为 false
  • 有关详细信息,请参阅 .NET Core 全球化固定模式
设置名称 价值观
runtimeconfig.json System.Globalization.Invariant false - 访问文化数据
true - 以固定模式运行
MSBuild 属性 InvariantGlobalization false - 访问文化数据
true - 以固定模式运行
环境变量 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT 0 - 访问文化数据
1 - 以固定模式运行

例子

runtimeconfig.json 文件:

{
   "runtimeOptions": {
      "configProperties": {
         "System.Globalization.Invariant": true
      }
   }
}

runtimeconfig.template.json 文件:

{
   "configProperties": {
      "System.Globalization.Invariant": true
   }
}

项目文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <InvariantGlobalization>true</InvariantGlobalization>
  </PropertyGroup>

</Project>

纪元年份范围

设置名称 价值观
runtimeconfig.json Switch.System.Globalization.EnforceJapaneseEraYearRanges false - 宽松范围检查
true - 溢出导致异常
环境变量 N/A N/A

此配置设置没有特定的 MSBuild 属性。 但是,可以转而添加 MSBuild 项 RuntimeHostConfigurationOption。 将 runtimeconfig.json 设置名称用作 特性的值。Include 如需示例,请参阅 MSBuild 属性

日语日期分析

  • 确定包含“1”或“Gannen”的字符串是否成功分析,还是仅支持“1”。
  • 如果省略此设置,则包含“1”或“Gannen”的字符串作为年份分析成功。 它等效于将值设置为 false
  • 有关详细信息,请参阅 在具有多个纪元的日历中表示日期
设置名称 价值观
runtimeconfig.json Switch.System.Globalization.EnforceLegacyJapaneseDateParsing false - 支持“Gannen”或“1”
true - 仅支持“1”
环境变量 N/A N/A

此配置设置没有特定的 MSBuild 属性。 但是,可以转而添加 MSBuild 项 RuntimeHostConfigurationOption。 将 runtimeconfig.json 设置名称用作 特性的值。Include 如需示例,请参阅 MSBuild 属性

日语年份格式

  • 确定日本日历时代的第一年是格式化为“甘宁”还是数字。
  • 如果省略此设置,则第一年的格式为“Gannen”。 它等效于将值设置为 false
  • 有关详细信息,请参阅 在具有多个纪元的日历中表示日期
设置名称 价值观
runtimeconfig.json Switch.System.Globalization.FormatJapaneseFirstYearAsANumber false - 格式为“甘宁”
true - 格式为数字
环境变量 N/A N/A

此配置设置没有特定的 MSBuild 属性。 但是,可以转而添加 MSBuild 项 RuntimeHostConfigurationOption。 将 runtimeconfig.json 设置名称用作 特性的值。Include 如需示例,请参阅 MSBuild 属性

NLS

  • 确定 .NET 是针对 Windows 应用使用国家语言支持(NLS)还是 Unicode(ICU) 全球化 API 的国际组件。 默认情况下,.NET 5 及更高版本在 Windows 10 2019 年 5 月更新和更高版本上使用 ICU 全球化 API。
  • 如果省略此设置,则 .NET 默认使用 ICU 全球化 API。 它等效于将值设置为 false
  • 有关详细信息,请参阅 全球化 API 在 Windows 上使用 ICU 库
设置名称 价值观 已引入
runtimeconfig.json System.Globalization.UseNls false - 使用 ICU 全球化 API
true - 使用 NLS 全球化 API
.NET 5
环境变量 DOTNET_SYSTEM_GLOBALIZATION_USENLS false - 使用 ICU 全球化 API
true - 使用 NLS 全球化 API
.NET 5

此配置设置没有特定的 MSBuild 属性。 但是,可以转而添加 MSBuild 项 RuntimeHostConfigurationOption。 将 runtimeconfig.json 设置名称用作 特性的值。Include 如需示例,请参阅 MSBuild 属性

预定义区域性

设置名称 价值观 已引入
runtimeconfig.json System.Globalization.PredefinedCulturesOnly true - 在全球化固定模式下,不允许创建除固定区域性以外的任何区域性。
false - 允许创建任何区域性。
.NET 6
MSBuild 属性 PredefinedCulturesOnly true - 在全球化固定模式下,不允许创建除固定区域性以外的任何区域性。
false - 允许创建任何区域性。
.NET 6
环境变量 DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY true - 在全球化固定模式下,不允许创建除固定区域性以外的任何区域性。
false - 允许创建任何区域性。
.NET 6