Oracle oci.dll липсва, когато се изпълнява на MSTest агент

Опитвам се да накарам някои тестове за интеграция, свързани с бази данни, да се изпълняват на тестов агент MSTest. Използваме c# и oracle db с 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
Als плащане - 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