NETSDK1022: sono inclusi elementi duplicati
Questo articolo si applica a: ✔️ SDK .NET Core 2.1.100 e versioni successive
A partire da Visual Studio 2017 / MSBuild versione 15.3, .NET SDK include automaticamente gli elementi della directory del progetto per impostazione predefinita. Questi elementi includono le destinazioni Compile
e Content
. Questo comportamento semplifica i file di progetto.
Tuttavia, se si definisce in modo esplicito uno di questi elementi nel file di progetto, è probabile che venga visualizzato un errore di compilazione simile al seguente:
Sono inclusi elementi “Compile” duplicati. L’SDK .NET include gli elementi “Compile” dalla directory del progetto per impostazione predefinita. You can either remove these items from your project file, or set the 'EnableDefaultCompileItems' property to 'false' if you want to explicitly include them in your project file. (Rimuovere questi elementi dal file di progetto o impostare la proprietà 'EnableDefaultCompileItems' su 'false' se li si vuole includere esplicitamente nel file di progetto)
Sono inclusi elementi “EmbeddedResource” duplicati. L’SDK .NET include gli elementi “EmbeddedResource” dalla directory del progetto per impostazione predefinita. È possibile rimuovere questi elementi dal file di progetto oppure impostare la proprietà “EnableDefaultEmbeddedResourceItems” su “false” se si desidera includerli in modo esplicito nel file di progetto.
Per risolvere gli errori, eseguire una delle operazioni seguenti:
Rimuovere gli elementi espliciti
Compile
,EmbeddedResource
oNone
corrispondenti a quelli impliciti elencati nella tabella precedente.Impostare la proprietà EnableDefaultItems su
false
per disabilitare l'inclusione implicita di tutti i file:<PropertyGroup> <EnableDefaultItems>false</EnableDefaultItems> </PropertyGroup>
Se si vogliono specificare i file da pubblicare con l'app, è comunque possibile usare i meccanismi di MSBuild noti a tale scopo, ad esempio l'elemento
Content
.Disabilitare in modo selettivo solo i glob
Compile
,EmbeddedResource
oNone
impostando la proprietà EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems oppure EnableDefaultNoneItems sufalse
:<PropertyGroup> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems> <EnableDefaultNoneItems>false</EnableDefaultNoneItems> </PropertyGroup>
Se si disabilitano solo i glob
Compile
, Esplora soluzioni in Visual Studio visualizza ancora elementi *.cs come parte del progetto, inclusi come elementiNone
. Per disabilitare il globNone
implicito, impostare ancheEnableDefaultNoneItems
sufalse
.
Progetti WPF
Questo errore potrebbe verificarsi in un progetto WPF a causa di elementi ApplicationDefinition
o Page
duplicati. Per risolvere l’errore, è possibile disabilitare gli elementi predefiniti usando una proprietà MSBuild. Ad esempio, per disabilitare gli elementi Page
predefiniti in un progetto WPF, impostare EnableDefaultPageItems
su false
:
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Per altre informazioni, vedere Errori correlati a elementi duplicati (WPF).