Visual Studio调试VB.NET扩展崩溃时自动生成C#转换文件?此现象是否可能?
问题解答
这种情况完全可能,原因主要和Visual Studio调试器的反编译逻辑、崩溃时的异常状态有关:
- 你的VB.NET代码编译后生成的是通用IL(中间语言),VS调试器的即时反编译功能负责把IL还原成可读的高级语言。正常情况下它会根据项目上下文识别原语言,但在调试进程崩溃这种异常场景下,调试器的语言检测逻辑可能失效,直接默认用C#来反编译IL——毕竟C#是VS反编译组件的默认基准目标语言。
- 自动打开的
MySpecialTools.cs是调试器临时生成的缓存文件,只会存放在VS的临时目录里,不会写入你的项目文件夹,这就是你在项目目录找不到它的原因。 - 另外,VS扩展本身运行在VS主进程内部,崩溃时的进程状态紊乱可能进一步干扰调试器的上下文识别,加剧了这种“误反编译成错误语言”的问题。
内容的提问来源于stack exchange,提问作者Sam Marrocco
相关产品推荐
相关产品推荐

