Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Szenario
Das Projekt "MyProject" versucht, doppelte Frameworks wiederherzustellen, die nur im Standardabhängigkeitslöser unterstützt werden, wenn das .NET SDK Version 10.0.300 oder höher ist. Aktualisieren Sie Ihr .NET SDK, oder entfernen Sie RestoreUseLegacyDependencyResolver, um dieses Feature zu verwenden.
Thema
Ihre Projektdatei enthält mehrere TargetFrameworks Einträge, die in das gleiche NuGet-Framework aufgelöst werden.
Dieses Szenario wird als Frameworkaliasing bezeichnet, wobei verschiedene TargetFramework-Eigenschaften dem gleichen zugrunde liegenden Framework zugeordnet sind.
Beispielsweise definiert eine Projektdatei wie die folgende zwei Zielframeworks, die beide in das gleiche net9.0 NuGet-Framework aufgelöst werden:
<PropertyGroup>
<TargetFrameworks>net9.0-custom1;net9.0-custom2</TargetFrameworks>
</PropertyGroup>
Frameworkaliasing wird nur im Standardmäßigen Abhängigkeitslöser unterstützt, der .NET SDK 10.0.300 oder höher erfordert (SdkAnalysisLevel von 10.0.300 oder höher).
Wenn der Legacy-Abhängigkeitslöser aktiv ist (entweder weil die SDK-Version älter RestoreUseLegacyDependencyResolver oder festgelegt ist), unterstützt das Ressourcendateiformat keine doppelten Frameworks, und NuGet löst diesen Fehler aus.
Lösung
Verwenden Sie einen der folgenden Ansätze, um diesen Fehler zu beheben:
- Upgrade auf .NET SDK 10.0.300 oder höher, das den Standardmäßigen Abhängigkeitslöser verwendet, der frameworkbasierte Aliase unterstützt.
-
Entfernen Sie die
RestoreUseLegacyDependencyResolverEigenschaft aus der Projektdatei oderDirectory.Build.props, wenn sie festgelegt ist. Dadurch kann NuGet den Standardmäßigen Abhängigkeitslöser verwenden. -
Entfernen Sie doppelte Frameworkeinträge aus Ihrer
TargetFrameworksEigenschaft, sodass jedes Zielframework in ein eindeutiges NuGet-Framework aufgelöst wird.