目前,我有一个项目,其中包括许多dotnet3.1应用程序/库,我们正在将它们升级到dotnet 6(最新的dotnet版本与LTS)
升级到dotnet 7是不可能的,也不取决于我,我被严格指示升级到dotnet 6。
不幸的是,只需在Visual Studio中打开nuget的更新窗格并选择“Select all packages”并点击update,默认会尝试将它们更新为dotnet 7兼容的包,然后当然会失败,因为应用程序正在使用dotnet 6。
有没有什么简单的方法可以过滤可用的软件包,只 * dotnet 6兼容的软件包,然后更新到该子集的最新版本?
这个项目是相当大的,有无数的软件包在使用,所以,手动通过他们每个人一个接一个地挑选最新的兼容版本将需要很长的时间,所以如果有一种方法,任何人都知道这样做,将非常感谢!
1条答案
按热度按时间9w11ddsr1#
有没有什么简单的方法可以将可用的包过滤到只兼容dotnet 6的包,然后更新到最新的包?
我认为答案是否定的没有一个简单的方法来实现这一点。目前,VS2022中的功能只是将软件包更新到最新版本。
正如PMF所提到的,大多数支持“.NET7”的软件包也将支持“.NET6”。
对于您的要求,只有两种方式:
1、自己写代码,用类似python爬虫的技术逐个筛选出最新兼容版本的包,然后用脚本更新.csproj文件中的包版本。
2、由于目前不支持此功能,您可以创建一个功能请求:
https://developercommunity.visualstudio.com/VisualStudio/suggest