蓝字 江湖评谈设为关注
有人问.NET7/8有没有bug呢?当然是有的,而且不少(官方runtime目前没关闭的Issuse大约是5K+)。那为什么平常没有遇到呢?因为平常用到的都是托管层面的,托管层面基本上不会出错,它跟业务层级挂钩,SDK是非常非常稳健的。这里说的BUG是非托管层面的,也就是CLR/JIT那一块C++的代码。
分享一下个人认为具有价值的两个Issuse。
Issuse1:在进行.NET8分层编译Debug CLR的时候遇到的代码调试直接退出的情况。这个Issuse的地址如下:
https://github.com/dotnet/runtime/issues/94964
这个Bug非常奇怪,调试几次分层编译,VS就会直接自动退出Debug,因为它退出的时间是不固定的,在输出窗口看到的只是一些退出的消息。再加上分层编译是多线程同时执行,并行监视需要同时监控多达四五个线程,比如,主线程,析构函数线程,分层编译工作线程,TPP WorkerThread线程,ServerThread线程,基本上地狱难度级别的确认,个人目前是无法确认它这个退出的问题点在哪的。可以看到,分层编译不能够正常调试,但能够正常运行,这完全不影响托管层级的代码运行。
Issuse2:在进行.NET7的主机corehost.sln生成的时候代码报错,这个问题其实不是大问题,但是依然值得注意和警惕。这个Issuse的地址如下:
https://github.com/dotnet/runtime/issues/88115
主要是hostfxr这块的代码,在通过build -vs生成的时候,会出现莫名其妙的错误,解决方案,其实很简单,基本上就是升级cmake和VS的版本即可解决。这其实也提供了一个思路,也就说,如果触及到.NET底层核心的的东西,可以往最新的工具链版本上靠,也就是升级到最新版本,这样可以避免很多不必要问题的干扰。这个问题也很有意思,它实际上是新旧版本的问题,同样不影响托管层级的业务代码运行。
可以看到这两个Issuse,第一个是隐藏极深的算不上bug的bug,第二个基本上不算bug,但影响托管结果。今天大致就分享这么多了。
本文暂时没有评论,来添加一个吧(●'◡'●)