NETSDK版本报错的解决方法 

       

今天把git上的一个微软计算器的项目拉下来研究,编译的时候报错:

        当前.Net SDK不支持将.Net 8.0设置为目标。请将.Net 7.0或更低版本设置为目标,或使用支持.Net 8.0的.Net SDK版本

        说真的当时我真的是把VS编译器中报的错误来来回回读了好几遍都没看到这段中文说的是啥。当时我的报错大概就长这样(抱歉,原来的报错找不到了,现在我是编译通过了才写的这篇文章。这是我在网上找的一张别人的图,侵权删),我的报的错误和他的唯一区别就是里面的版本号不一样。

当时我先是在网上找到了这个错误的官方说明文档:

NETSDK1045:当前的 .NET SDK 不支持将“更新的版本”作为目标。 - .NET CLI | Microsoft Learn

根据他的这个官方说明,我总算是看懂了报错的具体含义了:

        首先,前半句说的是报错原因。具体的错误就是在我当前项目的配置或者设置中,我将.Net8.0设置成了我编译的目标(很有可能是我从git上拉下来的这个库的默认环境配置)。但问题是VS发现我本地的电脑中并没有Net8.0这个版本。所以接下来的后半句给出了解决办法,要么你选择一个7.0或者更低的版本,这要你电脑中安装了这个版本即可。要么你就去网上下一个8.0的版本。

你可以现在你的VS的命令行中输入如下代码,看看你本地安装的NET版本是多少:

dotnet --list-sdks

右键单击解决方案,在弹出的列表中选择“在终端中打开”

进入如下界面:

输入上述命令后得到如下结果,系统显示了我本地电脑安装的NETSDK的位置和版本号,这里是我已经成功消除错误后的结果。当时我的电脑显示我本地电脑安装的版本号是7.0。 但我设置的目标是.NET8.0,不匹配导致报错。

 但我在VS中一直找不到选择NET版本的地方,所以我只能把8.0下下来。注意,系统提示你缺哪个版本你就下哪个,也就是系统提示的那个“更新的版本”。我这边缺的是8.0。

官方下载地址如下:

.NET Downloads (Linux, macOS, and Windows)

在官网中选择8.0,然后再根据你当前的系统版本选择对应的下载版本即可。 我这里选择的是windows的x64版本。

 安装完成后,重启。再在VS的命令行终端中输入“dotnet --list-sdks”,这时就会显示你已经安装好了NET8.0版本。重新编译项目看是否报错。

如果依然报错,我强烈推荐更新VS。因为,根据这个错误的官方说明,只有更高版本的VS才支持更高版本的.NET。

此外,如果你的VS版本已经很新了,我强烈推荐你执行VS的自动更新,不管他提示啥,你直接更新就好了。很有可能他提示你要跟新一个和.NET毫无干系的东西,更新就完了。因为在我自己的操作中我就遇到了这种情况,VS让我跟新的东西(在我看来)和.NETSDK没有任何关系。但我更新的时候,发现他居然把我原装的NET7.0卸了,然后安装了在他看来更好的8.0版本,这个版本可能比你自己在官网上下的那个版本更好/更合适。

在VS的主界面中,单击帮助,选择“检查更新”。

我今天刚刚跟新过了,所以系统提示,你无需更新。但我当时报错的时候,系统是有提示我更新的。

更新完以后,重启,这个时候NETSDK的报错就没了,编译通过。

By the way:

        如果你知道配置/选择.NET版本的方法,或者界面在哪里,麻烦告诉我和其他可能会遇到类似问题的朋友。


(全文完)

作者 --- 松下J27

版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐