Scenario
專案「MyProject」嘗試還原重複框架,這些框架僅在 .NET SDK 版本為 10.0.300 或更新時,支援於預設相依解析器中。 升級你的 .NET SDK 或移除 RestoreUseLegacyDependencyResolver 才能使用此功能。
Issue
你的專案檔案有多個 TargetFrameworks 條目,解析到同一個 NuGet 框架。
此情境稱為框架別名,不同的 TargetFramework 屬性會映射到同一底層框架。
例如,像以下這樣的專案檔案定義了兩個目標框架,兩者都解析到同一個 net9.0 NuGet 框架:
<PropertyGroup>
<TargetFrameworks>net9.0-custom1;net9.0-custom2</TargetFrameworks>
</PropertyGroup>
框架別名僅支援於預設相依性解析器,且需.NET SDK 10.0.300 或更新版本(SdkAnalysisLevel 或 10.0.300 或更新版本)。
當舊有依賴解析器啟用時(可能是因為 SDK 版本較舊或 RestoreUseLegacyDependencyResolver 因為設定),資產檔案格式不支援重複框架,而 NuGet 會觸發這個錯誤。
解決方案
請採用以下其中一種方法來解決此錯誤:
- 升級.NET至 SDK 10.0.300 或更新版本,該版本使用支援框架混疊的預設相依解析器。
- 從你的專案檔案移除該
RestoreUseLegacyDependencyResolver屬性,或者Directory.Build.props如果設定了。 這讓 NuGet 可以使用預設的相依解析器。 - 移除你資產中
TargetFrameworks,讓每個目標框架解析成一個獨特的 NuGet 框架。