问题发现:因为接手维护的老项目.NET Framework版本较低(.NET4.0/.NET4.5)。新系统中刚下载的Visual Studio 2022组件中不支持低版本框架下载,如下图。

这次我直接上微软官网找到对应的.NET版本下载(https://dotnet.microsoft.com/zh-cn/download/dotnet-framework)但是运行安装程序报错。



问题原因:Visual Studio 2022 本身不再支持 .NET Framework 4.0 作为其运行的组件,因为它需要更高版本的 .NET Framework(4.7.2 或更高)来运行 IDE 本身。
问题解决:查看了微软社区的指引(https://learn.microsoft.com/zh-cn/dotnet/framework/migration-guide/reference-assemblies?WT.mc_id=dotnet-35129-website),低版本框架的程序集可使用NuGet获取packages包设置config来解决。那是不是可以理解把packages下载下来然后利用反射原理,替换掉Visual Studio中缺失的低版本框架库文件呢?
打开NuGet网址(https://www.nuget.org/)复制搜索以下内容。

可以看到出现了低框架版本的.nupkg包。

选择你需要下载版本的包。

下载后将.nupkg后缀名修改成.zip(其他压缩文件扩展名也行)解压文件,找到对应版本文件夹,路径如:x:\xxx\microsoft.netframework.referenceassemblies.net40.1.0.3\build\.NETFramework

然后找到系统中.NET运行时的编译文件夹(C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework),可以在此文件夹下看到很多的.NET版本,用你下载的对应版本替换掉这个目录中的对应版本文件夹。

完成后可以使用Visual Studio 2022新建项目指定框架或者将测试项目切换框架进行测试,可以选择你需要的低框架版本则没问题。


也可以直接安装Visual Studio 2019使用低框架(但是微软官方目前需要订阅才能下载使用),希望文章对你有用。