Błąd narzędzia NuGet NU1018

Scenario

Projekt "MyProject" próbuje przywrócić zduplikowane struktury, które są obsługiwane tylko w domyślnym rozpoznawaniu zależności, gdy zestaw SDK .NET jest w wersji 10.0.300 lub nowszej. Uaktualnij zestaw SDK .NET lub usuń polecenie RestoreUseLegacyDependencyResolver, aby użyć tej funkcji.

Problematyka

Plik projektu zawiera wiele TargetFrameworks wpisów, które rozpoznają tę samą strukturę NuGet. Ten scenariusz jest znany jako aliasowanie struktury, gdzie różne właściwości TargetFramework są mapowanie na tę samą podstawową strukturę.

Na przykład plik projektu podobny do poniższego definiuje dwie struktury docelowe, które obie są rozpoznawane w tej samej net9.0 strukturze NuGet:

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

Aliasowanie struktury jest obsługiwane tylko w domyślnym narzędziu rozpoznawania zależności, który wymaga .NET zestawu SDK 10.0.300 lub nowszego (SdkAnalysisLevel10.0.300 lub nowszym). Gdy starszy program rozpoznawania zależności jest aktywny (ponieważ wersja zestawu SDK jest starsza lub RestoreUseLegacyDependencyResolver jest ustawiona), format pliku zasobów nie obsługuje zduplikowanych struktur, a pakiet NuGet zgłasza ten błąd.

Rozwiązanie

Aby rozwiązać ten błąd, użyj jednej z następujących metod:

  • Upgrade do .NET zestawu SDK 10.0.300 lub nowszego który używa domyślnego narzędzia rozpoznawania zależności obsługującego aliasy platformy.
  • RestoreUseLegacyDependencyResolver Usuń właściwość z pliku projektu lub Directory.Build.props, jeśli jest ustawiona. Dzięki temu program NuGet może używać domyślnego narzędzia rozpoznawania zależności.
  • Usuń zduplikowane wpisy struktury z właściwości TargetFrameworks , aby każda platforma docelowa rozpoznawała unikatową strukturę NuGet.