適用於全球化的執行階段設定選項

非變異模式

  • 判斷 .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 屬性。 不過,您可以改為新增 RuntimeHostConfigurationOption MSBuild 項目。 使用 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 屬性。 不過,您可以改為新增 RuntimeHostConfigurationOption MSBuild 項目。 使用 runtimeconfig.json 設定名稱作為 Include 屬性的值。 如需範例,請參閱 MSBuild 屬性

日文年份格式

  • 判斷日文行事曆紀元的第一年格式化為 "Gannen" 還是數字。
  • 如果您省略此設定,則會將第一年格式化為 "Gannen"。 這相當於設定 false 值。
  • 如需詳細資訊,請參閱代表多紀元行事曆中的日期
設定名稱
runtimeconfig.json Switch.System.Globalization.FormatJapaneseFirstYearAsANumber false - 格式為 "Gannen"
true - 格式為數字
環境變數 N/A N/A

此組態設定沒有特定的 MSBuild 屬性。 不過,您可以改為新增 RuntimeHostConfigurationOption MSBuild 項目。 使用 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 屬性。 不過,您可以改為新增 RuntimeHostConfigurationOption MSBuild 項目。 使用 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