Chyba NuGet NU1018

Scénář

Projekt MyProject se pokouší obnovit duplicitní architektury, které jsou podporovány pouze ve výchozím překladač závislostí, pokud je .NET SDK verze 10.0.300 nebo novější. Upgradujte sadu .NET SDK nebo odeberte RestoreUseLegacyDependencyResolver, aby tuto funkci používala.

Problém

Soubor projektu obsahuje více TargetFrameworks položek, které se přeloží na stejnou architekturu NuGet. Tento scénář se označuje jako aliasy architektury, kde se různé vlastnosti TargetFramework mapují na stejnou podkladovou architekturu.

Například soubor projektu podobný následujícímu definuje dvě cílové architektury, které se přeloží na stejnou net9.0 architekturu NuGet:

<PropertyGroup>
  <TargetFrameworks>net9.0-custom1;net9.0-custom2</TargetFrameworks>
</PropertyGroup>

Aliasing architektury se podporuje jenom ve výchozím překladači závislostí, který vyžaduje .NET SDK 10.0.300 nebo novější (SdkAnalysisLevel10.0.300 nebo novější). Pokud je starší verze překladače závislostí aktivní (protože verze sady SDK je starší nebo je RestoreUseLegacyDependencyResolver nastavená), formát souboru assetů nepodporuje duplicitní architektury a NuGet vyvolá tuto chybu.

Řešení

Při řešení této chyby použijte jeden z následujících přístupů:

  • Upgrade na .NET SDK 10.0.300 nebo novější, který používá výchozí překladač závislostí podporující aliasing architektury.
  • RestoreUseLegacyDependencyResolver Odeberte vlastnost ze souboru projektu nebo Directory.Build.props, pokud je nastavená. To umožňuje NuGetu používat výchozí překladač závislostí.
  • Odeberte z vlastnosti TargetFrameworks duplicitní položky architektury, aby se každá cílová architektura přeložil na jedinečnou architekturu NuGet.