グローバリゼーションのランタイム構成オプション
インバリアント モード
- .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 - オーバーフローによって例外が発生する |
環境変数 | 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 プロパティ」を参照してください。
定義済みのカルチャ
- グローバリゼーション インバリアント モードが有効になっているときに、アプリでインバリアント カルチャ以外のカルチャを作成できるかどうかを構成します。
- この設定を省略した場合、.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 |
.NET