NETSDK1022: Dołączono zduplikowane elementy
Ten artykuł dotyczy: ✔️ .NET Core 2.1.100 SDK i nowsze wersje
Począwszy od programu Visual Studio 2017/ MSBuild w wersji 15.3, zestaw .NET SDK automatycznie dołącza elementy z katalogu projektu domyślnie. Te elementy obejmują Compile
elementy i Content
cele. To zachowanie upraszcza pliki projektu.
Jeśli jednak jawnie zdefiniujesz dowolny z tych elementów w pliku projektu, prawdopodobnie wystąpi błąd kompilacji podobny do następującego:
Dołączono zduplikowane elementy "Kompiluj". Zestaw .NET SDK domyślnie zawiera elementy "Kompiluj" z katalogu projektu. Możesz usunąć te elementy z pliku projektu lub ustawić właściwość "EnableDefaultCompileItems" na wartość "false", jeśli chcesz jawnie dołączyć je do pliku projektu.
Uwzględniono zduplikowane elementy "EmbeddedResource". Zestaw .NET SDK domyślnie zawiera elementy "EmbeddedResource" z katalogu projektu. Możesz usunąć te elementy z pliku projektu lub ustawić właściwość "EnableDefaultEmbeddedResourceItems" na wartość "false", jeśli chcesz jawnie dołączyć je do pliku projektu.
Aby usunąć błędy, wykonaj jedną z następujących czynności:
Usuń jawne
Compile
elementy ,EmbeddedResource
lubNone
zgodne z niejawnymi wymienionymi w poprzedniej tabeli.Ustaw właściwość EnableDefaultItems, aby
false
wyłączyć wszystkie niejawne dołączanie plików:<PropertyGroup> <EnableDefaultItems>false</EnableDefaultItems> </PropertyGroup>
Jeśli chcesz określić pliki do opublikowania w aplikacji, nadal możesz użyć znanych mechanizmów MSBuild, na przykład
Content
elementu.Selektywnie wyłączaj tylko
Compile
wartości ,EmbeddedResource
lubNone
globy, ustawiając właściwość EnableDefaultCompileItems, EnableDefaultEmbeddedResourceItems lub EnableDefaultNoneItems na :false
<PropertyGroup> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems> <EnableDefaultNoneItems>false</EnableDefaultNoneItems> </PropertyGroup>
Jeśli wyłączysz
Compile
tylko elementy globs, Eksplorator rozwiązań w programie Visual Studio nadal wyświetla *.cs elementy w ramach projektu, dołączone jakoNone
elementy. Aby wyłączyć niejawnyNone
glob, ustaw teżfalse
wartośćEnableDefaultNoneItems
.
Projekty WPF
Ten błąd może wystąpić w projekcie WPF z powodu duplikatu ApplicationDefinition
lub Page
elementów. Aby rozwiązać ten problem, można wyłączyć elementy domyślne przy użyciu właściwości MSBuild. Aby na przykład wyłączyć elementy domyślne Page
w projekcie WPF, ustaw wartość false
EnableDefaultPageItems
:
<PropertyGroup>
<EnableDefaultPageItems>false</EnableDefaultPageItems>
</PropertyGroup>
Aby uzyskać więcej informacji, zobacz Błędy związane z zduplikowanymi elementami (WPF).