VS2022升级.Net7导致原来的.Net6项目编译失败,错误编码:NETSDK1045

2025-12-13 0 399

记一次VS2022升级.Net7导致原来的.Net6项目编译失败,最后不断排查直到解决的思路与心得【错误编码:NETSDK1045】(sdk排查 -> 分析器排查 -> VS2022升级日志排查)

什么问题?
.net6的项目编译失败,提示【NETSDK1045 当前 .NET SDK 不支持将 .NET 6.0 设置为目标。请将 .NET 5.0 或更低版本设置为目标,或使用支持 .NET 6.0 的 .NET SDK 版本。】
VS2022升级.Net7导致原来的.Net6项目编译失败,错误编码:NETSDK1045

如何出现的该问题?
把VS2022升级到最新版本(17.4),升级完之后,之前的.net5项目都可以正常编译成功,但是.net6的项目编译失败,提示该错误。

错误分析
1.上述报错的意思就是当前检测到的.net sdk最高只支持到.net5,要想编译此项目,要么将该项目设置为.net5,要么就去下载.net6 sdk;
2.我本地一直是有.net6 sdk的,这个项目之前也是可以正产编译运行的;
3.用命令dotnet –list-sdks,也是可以看到我本地.net5,.net6,.net7的sdk都有的;
VS2022升级.Net7导致原来的.Net6项目编译失败,错误编码:NETSDK1045

尝试的解决办法
重新修复VS2022,再次检查.net6相关组件是否都已勾选
重新修复VS2022,再次检查以及确认.net6相关组件都已勾选,然后电脑重启,重新打开项目,仍然提示该错误。

将VS2022版本回滚(和VS版本关系应该不大,故放弃)
一直提示的.net sdk版本的问题,所以和VS版本应该没啥关系,最后实在是没有办法的话可以再尝试这一步,但是这个肯定不是解决问题的核心,肯定是回滚带来的.net sdk版本的变化。

技术群请教(未得到有效的答案)
在几个技术群里说明了该问题,但是大家大部分都没有遇到过这种问题,有几个给出的答案是.net sdk版本不对,但是并没有给出实际的解决办法。

自己思考,琢磨…(此轮耗时最久)
自己想了很多,也尝试了很多解决方案,但是问题并没有解决。

找到问题方向(.net分析器)
思考良久,突然发现一个思路突破口,编译不通过,看了下,项目依赖的分析器是黄的,也就意味着提示sdk不正确,加上我电脑本身一直是有.net6 sdk的,故问题方向可以确定:
本机有.net6 sdk,但是分析器解析结果不出来,解析出来的结果是没有.net6 sdk的。

顺着.net分析器向下排查
看了项目的分析器报黄,而且直接给出了分析器的位置,说明是使用的这个位置的分析器解析的项目的csproj的targetFramework对应的.net sdk:
1.找到该位置的dotnet.exe,点击分析器同文件夹的sdk文件夹进去,发现确实只有.net5 sdk,并没有.net6 sdk,也没有.net7 sdk;
VS2022升级.Net7导致原来的.Net6项目编译失败,错误编码:NETSDK1045

VS2022升级.Net7导致原来的.Net6项目编译失败,错误编码:NETSDK1045

2.上述结果说明,哪怕我现在有一个.net7的项目,只要不是自己创建的,现在打开依然编译不通过,还是分析器的问题;
3.此时已经很清晰了,分析器解析的是同级的sdk文件夹中的sdk,如果没有相应版本的,编译就会不通过,提示该异常;
4.只需要找到电脑里.net6的sdk,然后复制一份到该文件夹即可编译成功;


解决问题(将.net6 sdk放在分析器解析的文件夹中)
1.VS安装自己会带.net sdk,通常是在【C:\\Program Files\\dotnet】这个文件夹;
2.我们打开这个文件夹,里面有一个sdk的文件夹,打开,果然,里面.net5,.net6,.net7的sdk都在;
VS2022升级.Net7导致原来的.Net6项目编译失败,错误编码:NETSDK1045

3.将.net6 sdk的文件夹,复制到刚刚.net分析器统计的sdk文件夹;
4.重启VS,重新生成项目,perfect,生成成功!
VS2022升级.Net7导致原来的.Net6项目编译失败,错误编码:NETSDK1045

刨根问底(为何VS2022升级,会将.net sdk都移动了位置,或者说.net的分析器的位置都改变了?)
之前没问题,升级了VS就出现了该问题,究竟为何,我来看下升级日志:
1.打开cmd,输入%temp%,打开系统临时文件夹,里面会有系统最近的操作日志;
2.我们要找.net6,那么就直接在文件夹搜索【.NET_SDK_6】,然后等待搜索结束,慢慢排查,这都是.net6 sdk相关的日志;
VS2022升级.Net7导致原来的.Net6项目编译失败,错误编码:NETSDK1045

3.通过排查发现,今晚升级VS时,.net6 sdk确实是升级到了最新版本,添加位置也是正常位置【C:\\Program Files\\dotnet】,但是为何新升级的.net sdk在默认文件夹,而不在.net分析器对应的文件夹里呢?
4.应该是由于我之前.net5的项目,自己下载了.net5 sdk,然后没有和VS默认安装的路径一致导致的,后续使用我这个自定义路径的.net分析器,就找不到系统默认安装的sdk了。

Ending
Ending~
————————————————
版权声明:本文为CSDN博主「Lingbug」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37886901/article/details/123400607

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 VS2022升级.Net7导致原来的.Net6项目编译失败,错误编码:NETSDK1045 https://www.zuozi.net/36318.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务