Oracle oci.dll отсутствует при работе с агентом MSTest

Я пытаюсь запустить некоторые интеграционные тесты, связанные с базой данных, на тестовом агенте MSTest. Мы используем C# и базу данных Oracle с devart dotconnect.

Поскольку нам нужно использовать непрямой режим, я установил devart и клиент oracle на тестовый агент.

Тесты проходят гладко, когда я выполняю их на своей локальной машине. Но при выполнении на тестовом агенте (удаленно) он не может найти клиентскую oci.dll, которая где-то является зависимостью:

System.IO.FileNotFoundException: не удается загрузить клиентскую библиотеку Oracle oci.dll из дома..

Теперь я понятия не имею, почему это происходит. Я уже проверил переменные окружения PATH, но они вроде в порядке. Есть идеи, почему это работает на моей машине, но не при развертывании в тестовом агенте?

редактировать: добавлена ​​трассировка стека в devart:

Devart.Data.Oracle.OracleHome.get_ClientVersion()
Devart.Data.Oracle.aw.a(Boolean A_0, Boolean A_1, OracleHome A_2, Boolean A_3)
Devart.Data.Oracle.OracleInternalConnection..ctor(aa connectionOptions, OracleInternalConnection proxyConnection)
Devart.Data.Oracle.cs.a(k A_0, Object A_1, DbConnectionBase A_2)
Devart.Common.DbConnectionFactory.a(DbConnectionPool A_0, k A_1, DbConnectionBase A_2)
Devart.Common.DbConnectionPool.a(DbConnectionBase A_0)
Devart.Common.DbConnectionPool.GetObject(DbConnectionBase owningConnection)
Devart.Common.DbConnectionFactory.a(DbConnectionBase A_0)
Devart.Common.DbConnectionClosed.Open(DbConnectionBase outerConnection)
Devart.Common.DbConnectionBase.Open()
Devart.Data.Oracle.OracleConnection.Open()

person Efrain    schedule 24.07.2012    source источник
comment
Есть ли у пользователя, выполняющего модульные тесты, разрешение на доступ к домашнему каталогу Oracle? forums.devart.com/viewtopic.php?t=15271   -  person Gene S    schedule 24.07.2012
comment
Это могут быть разрешения, как сказал Gene S. Вы также можете проверить различия Oracle Home в реестре. HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME‹ID› ноль, если у вас только один дом. Проверьте, есть ли указание на правильный каталог.   -  person Martijn B    schedule 24.07.2012
comment
Оформление заказа – forums.devart.com/viewtopic.php?t=22700 - Ваш удаленный тестовый агент работает в другом режиме по сравнению с локальным?   -  person Martijn B    schedule 24.07.2012


Ответы (2)


Спасибо за ответы, получил правильные указатели. По-видимому, проблема возникает, когда 64-битный поток пытается загрузить 32-битную OCI.DLL и наоборот. Тем не менее, я поигрался с тестовыми настройками и настройками сборки, связанными с 32/64 вещами, но безрезультатно.

Во всяком случае, мне удалось решить проблему, дополнительно установив 64-битный клиент Oracle на тестовый агент. Почему-то кажется, что тогда поток QTAgent находит нужную OCI.DLL.

person Efrain    schedule 26.07.2012

Столкнулся с той же проблемой в консольном проекте. Я исправил это, изменив настройку платформы компиляции, перейдя в свойства проекта -> Компиляция -> Платформа назначения и выбрав x86.

person Alberto Albares    schedule 12.05.2020