NuGet-fel NU1018

Scenario

Projektet "MyProject" försöker återställa duplicerade ramverk, som endast stöds i standardberoendelösaren när .NET SDK är version 10.0.300 eller senare. Uppgradera din .NET SDK eller ta bort RestoreUseLegacyDependencyResolver för att använda den här funktionen.

Problematik

Projektfilen har flera TargetFrameworks poster som matchar samma NuGet-ramverk. Det här scenariot kallas för ramverksalias, där olika TargetFramework-egenskaper mappas till samma underliggande ramverk.

Till exempel definierar en projektfil som följande två målramverk som båda matchar samma net9.0 NuGet-ramverk:

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

Ramverksalias stöds endast i standardberoendelösaren, som kräver .NET SDK 10.0.300 eller senare (SdkAnalysisLevel av 10.0.300 eller senare). När den äldre beroendelösaren är aktiv (antingen för att SDK-versionen är äldre eller för att RestoreUseLegacyDependencyResolver den har angetts) stöder inte filformatet för tillgångar duplicerade ramverk, och NuGet genererar det här felet.

Lösning

Använd någon av följande metoder för att lösa det här felet:

  • Upgrade till .NET SDK 10.0.300 eller senare, som använder standardberoendelösaren som stöder ramverksalias.
  • Ta bort egenskapen RestoreUseLegacyDependencyResolver från projektfilen eller Directory.Build.props, om den har angetts. Detta gör att NuGet kan använda standardberoendelösaren.
  • Ta bort duplicerade ramverksposter från din TargetFrameworks egenskap så att varje målramverk matchar ett unikt NuGet-ramverk.