写了那么多年.Net,估计是写习惯了,没注意,所以最近遇到了一个比较麻烦的事情,说起来比较惭愧!公司的其他.Net程序员可能要因此将VisualStudio全部升级成VisualStudio2022,不然可能他们会无法编译我写的项目,而通过这件事情,也让我明白了,为什么很多.Net程序员都说.Net升级不向下兼容这个事情了!

事情的起因是之前公司要我做一个WebApi,因为公司都是一帮大龄程序员,因此,之前做的WebApi都是使用.NetFramework下的MVC写的,我觉得这有点过时了,因为现在大多数使用.Net技术栈的公司写WebApi都是使用.Net Core了!

可能有点炫技心理吧,于是接到公司这个任务以后,我使用的是.Net8作为技术框架,完成了公司交代的任务。

其实,这个事情也过去很久了,我写的WebApi也没出现过什么大问题,只不过,后来发生的一件事情,让我非常头疼!

突然有一天,我们公司另外一个程序员写的一个功能需要引用一个第三方库(下简称dll),这个第三方库只支持32位程序引用,也就是这个dll导致了一系列问题!

我电脑安装的VisualStudio的版本是2022,而引用了这个32位dll的项目是一个桌面软件项目,框架是WinForm,于是问题就出现了!

如果引用了这个32位dll的程序文件非界面文件,那么就没事,但是,如果在某个界面的代码里面引用了这个32位的dll,那么界面就打不开,VisualStudio就会报找不到这个32位dll文件的错误!

虽然报了这个错,但不妨碍编译,只是编写的软件界面打不开,无法预览和修改界面。

后来一查才知道,原来从VisualStudio2022开始,就不支持32位的程序了。

可是,我电脑的硬盘已经不够了,无奈之下,我就把VisualStudio2022给卸载了,下了一个VisualStudio2019,问题成功解决,再也不报32位dll引用不到的问题了!编写的软件界面也能够正常预览和修改了!

我开始想,2019就2019吧,反正其他同事用的都是2019,所以他们没遇到这个问题,就我遇到了!

但是,当我试图打开我之前写的WebApi的时候,代码框架竟然报错,说找不到.Net8!

开始我不以为然,想着可能是我卸载了VisualStudio2022,连带着把.Net8环境也卸载了,于是我就打开VisualStudio2019,试图重新安装.Net8环境。

结果,我发现VisualStudio2019的.Net环境最高只能选.Net5,没有.Net8环境!甚至于连.Net6的环境都没有!开始我以为.Net8环境没被我卸载掉,所以不显示,所以我又通过官网手动下载了.Net8的RunTime和SDK,重新安装了一遍,结果发现代码还是报错找不到.Net8环境!

搞了好久,我突然在官网的.Net8下载页看到了这么一段说,IDE支持只有VisualStudio2022!也就是说,只有VisualStudio2022才能写.Net8项目!

这不是扯淡嘛!

但是,现实就是这样,于是,我总结了下:

VisualStudio2022不支持32位的应用程序,虽然报错不影响编译!

.Net8只能在VisualStudio2022这个IDE上编译,在低版本的IDE上不支持!

我记得我第一次写.NetCore代码的时候,VisualStudio版本应该是2017,.NetCore版本用的还是.Net Standard3.1,后来又经历了.Net5,一直到.Net8,一直也没出现过任何问题。

现在想想,只要VisualStudio出新版本我总会更新,所以才会忽略VisualStudio对于不同版本的.Net的支持是不同的,仅仅是通过官方推送的更新是无法支持到更高的.Net版本的!

结语

事已至此,问题摆在了那里,我们公司很多程序员电脑里的VisualStudio的版本都是2019版本,如果日后想要修改我的代码,就必须把VisualStudio升级到2022版本!

所以,为了不让这个问题让大家措手不及,我只能要求大家在电脑上同时安装VisualStudio2019和VisualStudio2022!

对了,这里面还有一个插曲,我在用VisualStudio2022时顺便购买了一个Copilot,结果发现安装了VisualStudio2019以后也不能用了!所以,大家要千万注意哦!

举报/反馈

程序员古耕

6.9万获赞 5142粉丝
程序员网文签约作家自媒体人
教育领域创作者
关注
0
0
收藏
分享