用于全球化的运行时配置选项

固定模式

  • 确定 .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 - 超出范围导致异常
环境变量 不可用 空值

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

日语日期分析

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

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

日语年份格式

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

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

NLS

  • 确定 .NET 是否使用适用于 Windows 应用的 Unicode (ICU) 全球化 API 的区域语言支持 (NLS) 或国际组件。 默认情况下,.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