NETSDK1022: Foram incluídos itens duplicados
Este artigo se aplica a: ✔️ SDK do .NET Core 2.1.100 e versões posteriores
Do Visual Studio 2017/MSBuild versão 15.3 em diante, o SDK do .NET inclui automaticamente itens do diretório do projeto por padrão. Esses itens incluem Compile
e Content
destinos. Esse comportamento simplifica os arquivos de projeto.
No entanto, se você definir explicitamente qualquer um desses itens no arquivo de projeto, é provável que receba um erro de compilação semelhante ao seguinte:
Foram incluídos itens de "Compilação" duplicados. O SDK do .NET inclui os itens de "Compilação" do diretório do projeto por padrão. É possível remover esses itens do arquivo de projeto ou definir a propriedade “EnableDefaultCompileItems” como “false” se desejar incluí-los explicitamente no arquivo de projeto.
Foram incluídos os itens "EmbeddedResource" duplicados. O SDK do .NET inclui itens "EmbeddedResource" no diretório do projeto por padrão. Você pode remover esses itens do arquivo do projeto ou definir a propriedade "EnableDefaultEmbeddedResourceItems" como "false" se quiser incluí-los explicitamente no arquivo do projeto.
Para resolver os erros, siga um destes procedimentos:
Remova os itens explícitos
Compile
,EmbeddedResource
ouNone
que correspondam aos implícitos listados na tabela anterior.Defina a propriedade EnableDefaultItems para
false
a fim de desabilitar toda inclusão implícita de arquivos:<PropertyGroup> <EnableDefaultItems>false</EnableDefaultItems> </PropertyGroup>
Se você quiser especificar arquivos a serem publicados com seu aplicativo, ainda poderá usar os mecanismos MSBuild conhecidos para isso, por exemplo, o elemento
Content
.Desabilitar seletivamente apenas
Compile
,EmbeddedResource
ouNone
globs definindo as propriedades EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems ou EnableDefaultNoneItems comofalse
:<PropertyGroup> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems> <EnableDefaultNoneItems>false</EnableDefaultNoneItems> </PropertyGroup>
Se você desabilitar apenas o globs
Compile
, o Gerenciador de Soluções do Visual Studio ainda vai mostrar itens *.cs como parte do projeto, incluídos como itensNone
. Para desabilitar o glob implícitoNone
, definaEnableDefaultNoneItems
comofalse
também.
Projetos WPF
Você pode se deparar com este erro em um projeto do WPF devido a itens ApplicationDefinition
ou Page
duplicados. Para resolver o erro, você pode desabilitar os itens padrão usando uma propriedade do MSBuild. Por exemplo, para desabilitar os itens padrão Page
em um projeto WPF, defina EnableDefaultPageItems
como false
:
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Para obter mais informações, consulte Erros relacionados a itens duplicados (WPF).