在使用 System.Data.Common.DbProviderFactory 时,我们在 NUnit 测试中运行代码时会收到此错误,但在运行常规 Web 应用程序时不会出现此错误。
错误
System.InvalidCastException:[A]Oracle.DataAccess.Client.OracleParameter 无法转换为 [B]Oracle.DataAccess.Client.OracleParameter。类型 A 源自位置 'C:\Windows\assembly\GAC_32\Oracle.DataAccess\2.112.1.2__89b483f429c47342\ Oracle.DataAccess.dll'。类型 B 源自 'Oracle.DataAccess, Version=4.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342' 在位置 'C:\Windows\Microsoft.Net\assembly\GAC_32\Oracle.DataAccess\v4 的上下文'Default'中.0_4.112.1.2__89b483f429c47342\Oracle.DataAccess.dll'。
我们有单元测试项目引用的 2.112.1.2 程序集,我们甚至尝试了“使用特定版本”和“复制本地”,但它只是没有看到它继续从 GAC 中的较新版本加载的 DLL。