NETSDK1022: Foram incluídos itens duplicados
Este artigo aplica-se a: ✔️ SDK do .NET Core 2.1.100 e versões posteriores
A partir do Visual Studio 2017 / MSBuild versão 15.3, o SDK do .NET inclui automaticamente itens do diretório do projeto por padrão. Esses itens incluem Compile
e Content
alvos. Esse comportamento simplifica os arquivos de projeto.
No entanto, se você definir explicitamente qualquer um desses itens em seu arquivo de projeto, é provável que obtenha um erro de compilação semelhante ao seguinte:
Foram incluídos itens 'Compilar' duplicados. O SDK do .NET inclui itens 'Compilar' do diretório do seu projeto por padrão. Você pode remover esses itens do arquivo de projeto ou definir a propriedade 'EnableDefaultCompileItems' como 'false' se quiser incluí-los explicitamente no arquivo de projeto.
Foram incluídos itens 'EmbeddedResource' duplicados. O SDK do .NET inclui itens 'EmbeddedResource' do diretório do projeto por padrão. Você pode remover esses itens do arquivo de projeto ou definir a propriedade 'EnableDefaultEmbeddedResourceItems' como 'false' se quiser incluí-los explicitamente no arquivo de 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
desabilitar toda a 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 conhecidos do MSBuild para isso, por exemplo, o
Content
elemento .Desative seletivamente apenas , ou globs definindo a propriedade EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems ou EnableDefaultNoneItems como
false
:None
EmbeddedResource
Compile
<PropertyGroup> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems> <EnableDefaultNoneItems>false</EnableDefaultNoneItems> </PropertyGroup>
Se você desabilitar
Compile
apenas globs, o Gerenciador de Soluções no Visual Studio ainda mostrará itens *.cs como parte do projeto, incluídos comoNone
itens. Para desativar o glob implícitoNone
, definaEnableDefaultNoneItems
tambémfalse
.
Projetos WPF
Você pode acertar esse erro em um projeto WPF devido a duplicados ApplicationDefinition
ou Page
itens. Para resolver o erro, você pode desabilitar itens padrão usando uma propriedade MSBuild. Por exemplo, para desabilitar 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).