c# - 获取 TypeLoadException 而不是 Firebird DB 特定异常

标签 c# .net firebird

我在使用 Firebird 数据库的 C# .NET 4.0 dll(使用 stub /测试应用程序运行)时遇到了一个奇怪的问题。设置似乎是正确的,但是当 Firebird(我认为是 2.5.2)客户端/dll/提供程序需要抛出异常时,我总是得到以下信息:

Failure: System.TypeLoadException : Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

因此,例如,如果我将连接字符串更改为不指向我的数据库文件,它将给出此异常,而不是更相关的异常。无论我是否从 Visual Studio 2010 调试它,还是手动运行 EXE,都会发生这种情况。

还有另一个人正在处理相同的代码,但他没有这个问题,因此它似乎与代码无关。

有人见过或听说过这样的事情吗?不得不猜测异常试图告诉我什么,这真是令人沮丧。

更新:所以看起来好像一切都是x86,所以它看起来不像是位不匹配。我已经检查并仔细检查过我是否拥有正确版本的提供程序(例如 NETProvider-3.0.2-Net40)。我仍然收到 TypeLoadException。

仅供引用,以防对任何人有所启发,我运行的是 Windows XP 32 位。另一个获得相关/真实异常的人使用的是 Windows 7(可能是 64 位)。

最佳答案

问题在于您在 .NET 4 系统上使用 .NET 4.5 版本的 Firebird .NET 提供程序。 Microsoft 对 .NET 4.5 进行了就地更新,保留其版本 4.0.0.0,同时将 System.Runtime.CompilerServices.ExtensionAttribute 等内容移至 mscorlib能够使用 mscorlib 中的扩展方法。当 .NET 4.5 编译版本在 .NET 4 上运行时,它无法找到该类,因为它位于与预期不同的库中。

底线:确保安装 http://www.firebirdsql.org/en/net-provider/ 中的 .NET 4 版本 (NETProvider-3.0.2.0-NET40.7z)

this blog 上也描述了此信息.

关于c# - 获取 TypeLoadException 而不是 Firebird DB 特定异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14969513/

相关文章:

c# - 如何在c#中将PDF转换为WORD

c# - 在 C# 控制台应用程序中检测按键是否按下,无需等待按键

macos - 使用 Delphi Firemonkey 应用程序让 firebird 在 OSX 下工作

c# - 将二进制字段绑定(bind)到 ASP.NET DataGrid 导致错误

c# - 将urdu文本分配给c#中的变量

c# - 如何在 Code First 模型中设置 bool 值的默认值?

blob - 最佳 Firebird blob 大小页面大小关系

c# - 您可以截断 GridView 中数据绑定(bind)模板字段的结果吗?

c# - 关闭 .NET SerialPort 后的 ObjectDisposedExecption

firebird - 了解 Firebird 监控表中的 MON$STAT_ID