具体是什么原因导致消息为“Bad IL range”的异常?我从我的一个客户那里得到了一个错误报告,其中包含了这条消息,但是我看不到异常类型。在谷歌上搜索这段文本会产生非常不同的结果,我怀疑这在.NET/C#中是非常低级的,在许多不同的情况下都会发生。我假设IL是这里的“中间语言”。那么,究竟是什么导致了这种异常,以及发生这种异常的常见潜在原因是什么呢?
tyky79it1#
异常类型是BadImageFormatException,当程序集损坏时抛出(完整的异常消息应该解释是哪个程序集)。可能有很多不同的原因导致这种情况:病毒、硬件故障、软件错误或用户执行的错误操作。异常消息和Fusion日志属性将包含有关其所代表的错误类型的详细信息。你不能做太多,如果问题仍然存在,他可能需要重新安装您的应用程序或.NET框架,如果它确实发生了一次,那么他应该检查病毒或做一个严重的硬件测试。
BadImageFormatException
shstlldc2#
运行库验证加载的程序集,特别是检查提供的CIL的有效性,它检测CIL结构和CIL流中的各种不同问题。虽然我自己从未见过这个特定的问题,但我猜最常见的原因是应用程序或.NET程序集的物理损坏。我会尝试重新安装您的应用程序(和/或.NET运行时)。
g2ieeal73#
我的问题是一个不可靠的工作目录。所以一个坏的DLL在那里的某个地方,也许是一个nuget引用。更新我所有的nuget包没有工作,解决方案重建没有工作,电脑重启没有工作。从我的源代码管理(svn) checkout 到一个新的工作目录解决了这个问题。我在Win10上,所以这里可能有更深层次的东西,但我已经几天没有任何进一步的问题了。
hgncfbus4#
在我的例子中,我在dotnet run运行时执行了一个数据库迁移,我不得不终止这个进程并重新启动它,这样就解决了这个问题。
dotnet run
wz1wpwve5#
在我的例子中,这个错误是由于在_FormClosing事件中释放了一个程序集对象,如下所示:
if (_kishpos != null) _kishpos.Dispose();
不需要释放程序集对象的in _FormClosing()事件。
注解或删除它,以修复“错误的IL范围”错误。
//if (_kishpos != null) // _kishpos.Dispose();
我的错误修正了。
8cdiaqws6#
删除/bin和/obj文件夹(对我来说是blazor服务器,vscode,dotnet 7).然后再次运行dotnet run.
/bin
/obj
6条答案
按热度按时间tyky79it1#
异常类型是
BadImageFormatException
,当程序集损坏时抛出(完整的异常消息应该解释是哪个程序集)。可能有很多不同的原因导致这种情况:病毒、硬件故障、软件错误或用户执行的错误操作。异常消息和Fusion日志属性将包含有关其所代表的错误类型的详细信息。你不能做太多,如果问题仍然存在,他可能需要重新安装您的应用程序或.NET框架,如果它确实发生了一次,那么他应该检查病毒或做一个严重的硬件测试。
shstlldc2#
运行库验证加载的程序集,特别是检查提供的CIL的有效性,它检测CIL结构和CIL流中的各种不同问题。
虽然我自己从未见过这个特定的问题,但我猜最常见的原因是应用程序或.NET程序集的物理损坏。
我会尝试重新安装您的应用程序(和/或.NET运行时)。
g2ieeal73#
我的问题是一个不可靠的工作目录。所以一个坏的DLL在那里的某个地方,也许是一个nuget引用。更新我所有的nuget包没有工作,解决方案重建没有工作,电脑重启没有工作。
从我的源代码管理(svn) checkout 到一个新的工作目录解决了这个问题。
我在Win10上,所以这里可能有更深层次的东西,但我已经几天没有任何进一步的问题了。
hgncfbus4#
在我的例子中,我在
dotnet run
运行时执行了一个数据库迁移,我不得不终止这个进程并重新启动它,这样就解决了这个问题。wz1wpwve5#
在我的例子中,这个错误是由于在_FormClosing事件中释放了一个程序集对象,如下所示:
不需要释放程序集对象的in _FormClosing()事件。
注解或删除它,以修复“错误的IL范围”错误。
我的错误修正了。
8cdiaqws6#
删除
/bin
和/obj
文件夹(对我来说是blazor服务器,vscode,dotnet 7).然后再次运行dotnet run
.