この記事では、MSB4066エラー コードについて説明します。
メッセージ テキスト
MSB4066: The attribute 'value' in element 'value' is unrecognized.
注釈
このエラーは、MSBuild が認識しないプロジェクト ファイルまたはターゲット ファイルで XML 属性を検出した場合に発生します。 MSBuild は、プロジェクト ファイル内の要素の属性を検証して、各要素の正しい MSBuild 構文とサポートされている属性に準拠していることを確認します。
考えられる原因
このエラーは通常、次のいずれかが原因で発生します。
- MSBuild プロジェクト ファイル内の属性名の入力ミス (
.csproj
、.vbproj
、.proj
など)。 - プロジェクト ファイルでサポートされていない属性または古い属性を使用する。
- このコンストラクトをサポートしていない MSBuild のバージョンの属性でのメタデータの使用。
- 属性がプロジェクト ファイルに追加されましたが、MSBuild のバージョンでは認識されません。
Choose
などの一部のスキーマ要素では属性が許可されないため、Condition
の追加など、属性を使用しようとすると、このエラーが発生します。
解決策
入力ミスの確認: 属性名のスペルが正しく、予想されるスキーマと一致していることを確認します。
サポートされていない属性を削除する: MSBuild ドキュメントを相互参照して、属性が特定の要素に対して有効であることを確認します。 MSBuild プロジェクト ファイルのスキーマ リファレンスを参照してください。
使用している MSBuild バージョンでサポートされているメタデータ構文を使用します。問題がメタデータを属性として使用している場合 (たとえば、
Version="1.0"
が実際には属性ではなくメタデータであるVersion
)、古いメタデータ構文に変更できます。<PackageReference Include="System.Diagnostics.Process"> <Version>1.0</Version> </PackageReference>
MSBuild 14 と MSBuild 15 の間で属性として項目メタデータを指定するためのサポートが追加されました。
MSBuild のバージョンを更新する: 属性が新しく認識されない場合は、それをサポートする MSBuild のバージョンを使用していることを確認します。
対象
MSBuild のすべてのバージョン