VS2022升级.Net7导致原来的项目编译失败,.NET SDK 不支持将“更新的版本”作为目标。 将“更旧的版本”或更低版本作为目标。4.6.1不可用,net6可用netcore可用

发布时间 2023-07-06 10:55:35作者: 兮去

注:重点在 问题3(可找了老半天),可能是vs的bug,更换目标框架没有引入对应的内容。也可能是之前的开发项目的手动添加的。

重新安装系统后,新装的vs2022打开项目,原来.netframework4.5 .netframework4不在支持。

问题1:.NET SDK 不支持将“更新的版本”作为目标。 将“更旧的版本”或更低版本作为目标。

解决1:安装net5 sdk,或者net 6sdk,或者net7 sdk

 

 

问题2:

 解决2:准备想安装.net4.5,结果版本低了安装不了。于是修改成了。.net4.6.1。

 

 

 

 问题3:

出现了一个类在net6可用,netcore3.1可用,net4.6.1不可用。

过程3:

从微软官方文档可以看出。在netframework转core的过程中,BorderSidesEditor在dll的位置变更了。

netframework中BorderSidesEditor在System.Design.dll

netcore3/5/6/7中BorderSidesEditor在System.Windows.Forms.Design.dll中

 

 

如果是转成了net5/6/7那么项目中会有分析器,自动处理。

如果是转成了netframework则没有分析器。需要手动引入dll。那么问题又来了,我手动引入时,并没有找到相应的dll。最后各种找,在项目文件中看到有指定外部引用

 

 解决3:.csproj文件中的引入没有更换