gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:17 26 4
gpt4 key购买 nike

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

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com