次の方法で共有


MSBuild カスタム カルチャ リソースの処理

MSBuild 17.14 以降、カスタム カルチャ リソースの処理が既定で有効ではなくなりました。 この機能を有効にするには、ユーザーが明示的にオプトインする必要があります。 この変更により、カルチャ コードに似たディレクトリの自動検出による意図しない動作が防止されます。

導入されたバージョン

MSBuild 17.14

この変更は MSBuild の動作に影響するため、サポートされている .NET の 2 つのバージョン .NET 10 Preview 1 と .NET 9.0.2 に影響します。 カスタム カルチャの透過的なサポートは .NET SDK 9.0.200 で導入され、それをオプトイン方式にする変更は .NET SDK 9.0.300 で行われました。

以前の動作

MSBuild は以前、カルチャ コードに似た名前のディレクトリ (en-USfr-FR など) を既定でカルチャ固有のリソース ディレクトリとして扱っていました。 この動作により、ハッシュ ベースの名前や技術的な名前の付いたディレクトリなど、関係のないディレクトリが含まれることがあり、ビルド プロセスで意図しないリソース アセンブリが作成される原因となっていました。

新しい動作

  • カスタム カルチャ リソースの処理は既定では無効になっています。
  • この機能を有効にするには、プロジェクト プロパティの EnableCustomCulturetrue に設定します。
  • CustomCultureExcludeDirectories プロパティを使用して、カスタム カルチャの処理から除外するディレクトリ名のセミコロン区切りのリストを指定します。

破壊的変更の種類

これは動作の 変化です。

変更の理由

カルチャ固有のリソース ディレクトリの自動検出は、ディレクトリ名が偶然にもカルチャ コードと一致した場合に、予期しないビルド動作を引き起こす原因となっていました。 明示的なオプトインを要求することで、より予測可能なビルドが可能になり、ユーザーはリソース処理をより制御しやすくなります。

ビルド プロセスでカスタム カルチャ リソースの処理を利用している場合は、次の手順を実行します。

  1. プロジェクト プロパティ EnableCustomCulturetrue に設定します。
  2. 必要に応じて、CustomCultureExcludeDirectories プロパティを使用して、特定のディレクトリをカルチャ リソースとして扱わないように除外します。

影響を受ける API

なし。