Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Scenario
Il progetto "MyProject" sta tentando di ripristinare framework duplicati, supportati solo nel sistema di risoluzione delle dipendenze predefinito quando il .NET SDK è versione 10.0.300 o successiva. Aggiornare l'SDK di .NET o rimuovere RestoreUseLegacyDependencyResolver per usare questa funzionalità.
Issue
Il file di progetto include più TargetFrameworks voci che si risolvono nello stesso framework NuGet.
Questo scenario è noto come aliasing del framework, in cui diverse proprietà TargetFramework eseguono il mapping allo stesso framework sottostante.
Ad esempio, un file di progetto simile al seguente definisce due framework di destinazione che si risolvono entrambi nello stesso net9.0 framework NuGet:
<PropertyGroup>
<TargetFrameworks>net9.0-custom1;net9.0-custom2</TargetFrameworks>
</PropertyGroup>
L'aliasing del framework è supportato solo nel sistema di risoluzione delle dipendenze predefinito, che richiede .NET SDK 10.0.300 o versione successiva (SdkAnalysisLevel di 10.0.300 o versione successiva).
Quando il sistema di risoluzione delle dipendenze legacy è attivo (perché la versione dell'SDK è precedente o perché RestoreUseLegacyDependencyResolver è impostata), il formato del file assets non supporta framework duplicati e NuGet genera questo errore.
Soluzione
Usare uno degli approcci seguenti per risolvere l'errore:
- Upgrade per .NET SDK 10.0.300 o versione successiva, che usa il sistema di risoluzione delle dipendenze predefinito che supporta l'aliasing del framework.
-
Rimuovere la
RestoreUseLegacyDependencyResolverproprietà dal file di progetto oDirectory.Build.props, se impostata. In questo modo NuGet può usare il sistema di risoluzione delle dipendenze predefinito. -
Rimuovere le voci del framework duplicate dalla
TargetFrameworksproprietà in modo che ogni framework di destinazione venga risolto in un framework NuGet univoco.