NETSDK1022: 重複する項目が含まれていました
この記事の対象: ✔️ .NET Core 2.1.100 SDK 以降のバージョン
Visual Studio 2017 または MSBuild バージョン 15.3 以降、.NET SDK に既定でプロジェクト ディレクトリの項目が自動的に含まれています。 これらの項目には、Compile
と Content
ターゲットが含まれます。 この動作により、プロジェクト ファイルが簡略化されます。
ただし、これらの項目をプロジェクト ファイルに明示的に定義すると、次のようなビルド エラーが発生する可能性があります:
重複する 'Compile' 項目が含まれていました。 .NET SDK には、既定でプロジェクト ディレクトリの 'Compile' 項目が含まれています。 これらの項目をプロジェクト ファイルから削除するか、プロジェクト ファイルに明示的に含める場合は 'EnableDefaultCompileItems' プロパティを 'false' に設定することができます。
重複する 'EmbeddedResource' 項目が含まれていました。 .NET SDK には、既定でプロジェクト ディレクトリの 'EmbeddedResource' 項目が含まれています。 これらの項目をプロジェクト ファイルから削除するか、プロジェクト ファイルに明示的に含める場合は 'EnableDefaultEmbeddedResourceItems' プロパティを 'false' に設定することができます。
このエラーを解決するには、次のいずれかの操作を行います。
前の表に列挙されている暗黙的な項目と一致する明示的な
Compile
、EmbeddedResource
、またはNone
の項目を削除します。暗黙的なファイルの組み込みをすべて無効にするには、EnableDefaultItems プロパティを
false
に設定します。<PropertyGroup> <EnableDefaultItems>false</EnableDefaultItems> </PropertyGroup>
アプリで発行する一部のファイルを指定する必要がある場合は、そのために既知の MSBuild のしくみ (たとえば
Content
要素) を引き続き使用できます。Compile
、EmbeddedResource
、またはNone
glob を選択的に無効にするには、EnableDefaultCompileItems、EnableDefaultEmbeddedResourceItems、または EnableDefaultNoneItems プロパティをfalse
に設定します。<PropertyGroup> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems> <EnableDefaultNoneItems>false</EnableDefaultNoneItems> </PropertyGroup>
Compile
glob のみを無効にすると、Visual Studio のソリューション エクスプローラーに *.cs 項目がプロジェクトの一部として (None
項目として組み込まれて) 引き続き表示されます。 暗黙的なNone
glob を無効にするには、EnableDefaultNoneItems
もfalse
に設定します。
WPF プロジェクト
ApplicationDefinition
または Page
項目が重複しているために、WPF プロジェクトでこのエラーが発生する場合があります。 このエラーを解決するには、MSBuild プロパティを使用して既定の項目を無効にできます。 たとえば、WPF プロジェクトの既定の Page
項目を無効にするには、EnableDefaultPageItems
を false
に設定します:
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
詳細については、「重複する項目に関連するエラー (WPF)」を参照してください。
.NET