从 .Net Core 3.1 迁移到 .NET 5

4
我正在尝试将一个ASP.NET Core 3.1项目升级到.NET 5.0,但出现了以下警告消息:
警告 NU1701:使用“.NETFramework,Version=v4.6.1,.NETFramework,Version=v4.6.2,.NETFramework,Version=v4.7,.NETFramework,Version=v4.7.1,.NETFramework,Version=v4.7.2,.NETFramework,Version=v4.8”而不是项目目标框架“net5.0”来恢复包“Microsoft.AspNet.WebApi.Core 5.2.7”。该包可能与您的项目不完全兼容。
我已确保Microsoft.AspNet.WebApi包是最新的,但似乎没有什么帮助。 **编辑:**并已将其删除;但我仍然看到有关此包的警告。 这是项目依赖项的当前列表:Dependencies 这个版本的.NET是Entity Framework Core正常工作所必需的,而且我想升级整个项目。如何解决这个问题?

4
错误提示指出你使用了一个ASP.NET包而不是ASP.NET Core。你是否错误地向ASP.NET Core应用程序添加了错误的包?ASP.NET Core包的名称中包含“AspNetCore”。而你所使用的是AspNet.WebApiCore包。 - Panagiotis Kanavos
@CamiloTerevinto 我正在尝试将一个过时的项目更新到.NET 5...它是一个Web API(Web服务)项目。原始(过时)版本的项目使用了一个更旧的Microsoft.AspNet.WebApi包版本,我已经将其更新到当前版本。警告仍然存在。如果我的服务不需要这个包,那么我会考虑将其删除。您知道服务项目是否需要它吗? - Frinavale
@CamiloTerevinto 谢谢您,我已经删除了它,似乎项目可以正常运行。但是我仍然看到有关包'Microsoft.AspNet.WebApi.Client 4.0.20710'被还原,并使用我未针对的框架版本的错误消息。您知道为什么在我删除包后(并重新启动Visual Studio)我仍然会看到这个错误消息吗? - Frinavale
1
明白了:摆脱 Swashbuckle,使用 Swagger/SwaggerUI...升级就是这么有趣!谢谢! - Frinavale
@CamiloTerevinto 如果您发布建议删除对Swashbuckle包的引用,我将将其标记为答案以关闭此问题。再次感谢您的帮助。 - Frinavale
显示剩余5条评论
1个回答

4

Microsoft.AspNet.WebApi.* 包是针对非常老的ASP.NET Web API框架的。您有:

  • 通过对 Microsoft.AspNet.WebApi.Core 的引用,拥有直接依赖项,以及
  • 通过 Swashbuckle 间接依赖项

第一个可以移除,因为 Swashbuckle 会自动传递引用它。

第二个有点奇怪。您既有对 Swashbuckle(一个ASP.NET Web API包)的依赖,也有对 Swashbuckle.AspNetCore(一个ASP.NET Core包)的依赖。考虑到您不可能在ASP.NET Core 3.x中使用ASP.NET Web API,我的印象是您应该能够安全地将其移除,而不会出现任何编译器错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接