次の方法で共有


MSB4066診断コード

この記事では、MSB4066エラー コードについて説明します。

メッセージ テキスト

MSB4066: The attribute 'value' in element 'value' is unrecognized.

注釈

このエラーは、MSBuild が認識しないプロジェクト ファイルまたはターゲット ファイルで XML 属性を検出した場合に発生します。 MSBuild は、プロジェクト ファイル内の要素の属性を検証して、各要素の正しい MSBuild 構文とサポートされている属性に準拠していることを確認します。

考えられる原因

このエラーは通常、次のいずれかが原因で発生します。

  • MSBuild プロジェクト ファイル内の属性名の入力ミス ( .csproj.vbproj.projなど)。
  • プロジェクト ファイルでサポートされていない属性または古い属性を使用する。
  • このコンストラクトをサポートしていない MSBuild のバージョンの属性でのメタデータの使用。
  • 属性がプロジェクト ファイルに追加されましたが、MSBuild のバージョンでは認識されません。

Chooseなどの一部のスキーマ要素では属性が許可されないため、Conditionの追加など、属性を使用しようとすると、このエラーが発生します。

解決策

  1. 入力ミスの確認: 属性名のスペルが正しく、予想されるスキーマと一致していることを確認します。

  2. サポートされていない属性を削除する: MSBuild ドキュメントを相互参照して、属性が特定の要素に対して有効であることを確認します。 MSBuild プロジェクト ファイルのスキーマ リファレンスを参照してください

  3. 使用している MSBuild バージョンでサポートされているメタデータ構文を使用します。問題がメタデータを属性として使用している場合 (たとえば、Version="1.0"が実際には属性ではなくメタデータであるVersion)、古いメタデータ構文に変更できます。

    <PackageReference Include="System.Diagnostics.Process">
       <Version>1.0</Version>
    </PackageReference>
    

    MSBuild 14 と MSBuild 15 の間で属性として項目メタデータを指定するためのサポートが追加されました。

  4. MSBuild のバージョンを更新する: 属性が新しく認識されない場合は、それをサポートする MSBuild のバージョンを使用していることを確認します。

対象

MSBuild のすべてのバージョン