固定模式
- 确定 .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>
纪元年份范围
- 确定是否放宽对支持多个纪元的日历的范围检查,或者超出纪元日期范围的日期是否引发 ArgumentOutOfRangeException。
- 如果省略此设置,则会放宽范围检查。 它等效于将值设置为 false。
- 有关详细信息,请参阅日历、纪元和日期范围:放宽的范围检查。
| 设置名 | 值 | |
|---|---|---|
| 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 全球化 APItrue- 使用 NLS 全球化 API | .NET 5 | 
| 环境变量 | DOTNET_SYSTEM_GLOBALIZATION_USENLS | false- 使用 ICU 全球化 APItrue- 使用 NLS 全球化 API | .NET 5 | 
此配置设置没有特定的 MSBuild 属性。 但是,可以转而添加 MSBuild 项 RuntimeHostConfigurationOption。 将 runtimeconfig.json 设置名称用作 Include 特性的值。 如需示例,请参阅 MSBuild 属性。
预定义的区域性
- 配置应用在启用全球化固定模式时,是否可以创建除固定区域性之外的区域性。
- 如果省略此设置,.NET 会限制全球化固定模式下的区域性创建。 它等效于将值设置为 true。
- 有关详细信息,请参阅全球化固定模式下的区域性创建和大小写映射。
| 设置名 | 值 | 已引入 | |
|---|---|---|---|
| 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 |