При использовании System.Data.Common.DbProviderFactory с этой ошибкой мы получаем эту ошибку при запуске нашего кода в тесте NUnit, но не при запуске обычного веб-приложения.
Ошибка
System.InvalidCastException: [A] Oracle.DataAccess.Client.OracleParameter не может быть преобразован в [B] Oracle.DataAccess.Client.OracleParameter. Тип A происходит от Oracle.DataAccess, Version = 2.112.1.2, Culture = нейтральный, PublicKeyToken = 89b483f429c47342 в контексте «По умолчанию» в расположении C: \ Windows \ assembly \ GAC_32 \ Oracle.DataAccess \ 2.112.1.2__89b483f429c47342 \ Oracle.DataAccess.dll '. Тип B происходит от Oracle.DataAccess, Version = 4.112.1.2, Culture = нейтральный, PublicKeyToken = 89b483f429c47342 в контексте «По умолчанию» в расположении C: \ Windows \ Microsoft.Net \ assembly \ GAC_32 \ Oracle.DataAccess \ v4 .0_4.112.1.2__89b483f429c47342 \ Oracle.DataAccess.dll '.
У нас есть сборка 2.112.1.2, на которую ссылается проект модульного тестирования, и мы даже пробовали «использовать определенную версию» и «копировать локально», но он просто не видит, что DLL продолжает загружаться из более новой версии в GAC.