グローバリゼーションのランタイム構成オプション

インバリアント モード

  • .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 該当なし

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 Include 属性の値として runtimeconfig.json 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

日本の日付の解析

  • 年として "1" または "元年" のいずれかを含む文字列を正しく解析するか、または "1" のみをサポートするかを決定します。
  • この設定を省略した場合、年として "1" または "元年" が含まれる文字列は、正常に解析されます。 これは、値を false に設定した場合と同じです。
  • 詳細については、「複数の時代 (年号) のカレンダーで日付を表す」を参照してください。
設定の名前
runtimeconfig.json Switch.System.Globalization.EnforceLegacyJapaneseDateParsing false - "元年" または "1" をサポートする
true - "1" のみをサポートする
環境変数 N/A 該当なし

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 Include 属性の値として runtimeconfig.json 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

日本の年の形式

  • 和暦の元年を "元年" または "1" のどちらで書式設定するかを決定します。
  • この設定を省略した場合、最初の年は "元年" として書式設定されます。 これは、値を false に設定した場合と同じです。
  • 詳細については、「複数の時代 (年号) のカレンダーで日付を表す」を参照してください。
設定の名前
runtimeconfig.json Switch.System.Globalization.FormatJapaneseFirstYearAsANumber false - "元年" として書式設定する
true - 数字として書式設定する
環境変数 N/A 該当なし

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 Include 属性の値として runtimeconfig.json 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

NLS

  • .NET で Windows アプリ用に各国語サポート (NLS) または International Components for Unicode (ICU) のグローバリゼーション API が使用されるかどうかを決定します。 .NET 5 以降のバージョンの場合、Windows 10 May 2019 Update 以降のバージョンでは 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 項目を追加することもできます。 Include 属性の値として runtimeconfig.json 設定名を使用します。 たとえば、「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