Как мога да разположа .Net приложение, което използва ODAC, на чист компютър с файл tsnames.ora, пакетиран с инсталатора

Така че тук е проблемът. Това приложение, което имам, използва ODAC компоненти, но не искам да се налага да инсталирам клиенти на oracle на всички компютри, на които приложението трябва да бъде инсталирано. Така че се спрях на тази статия по-долу:

Кое е минималното необходима настройка за внедряване на .NET приложение с Oracle клиент 11?

Статията работи добре с компютри, които имат инсталиран някакъв оракул или поне tnsnames.ora е на правилното място. Въпреки това на нова машина получавам грешка ORA-12645: Параметърът не съществува. Опитах да опаковам tnsnames.ora заедно с sqlnet.ora, но .dlls не могат да ги намерят. Кодът по-долу е мястото, откъдето идва грешката:

 g_Db.ConnectionString = "Data Source=(DESCRIPTION= (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=osw-rmoradev)(PORT=1523))) (CONNECT_DATA=(SERVER=DEDICATED)(SID=RML3A))); User Id=RM_Level3;Password="passowrd";"
            g_Db.Open()

Всякакви идеи как да пакетирате .ora файловете ще бъдат полезни.


person Fernum    schedule 26.07.2012    source източник


Отговори (2)


Вместо да инсталирате клиента, пробвали ли сте да използвате доставчика на данни Oracle? Спомням си, че се натъкнах на този проект и след това не се наложи да инсталирам клиента на Oracle. Връзка към ODP

person Josh    schedule 26.07.2012

Изглежда, че чрез задаване на променливите на околната среда за екземпляра на програмата на местоположението на файловете с данни .ora изглежда е отстранен проблемът.

nvironment.SetEnvironmentVariable("PATH", "c:\Documents and Settings\" & currentUserName & "\Local Settings\Apps\2.0;" + "c:\Documents and Settings\" & currentUserName & "\Local Settings\Apps\2.0\Data\\R5MG416O.62T\77DKVOW4.TWH\rct...tion_7a1a328dbe52217b_0002.0000_f2dbb34fd1c05e8d\Data;", EnvironmentVariableTarget.Process)
                    Environment.SetEnvironmentVariable("ORACLE_HOME", "c:\Documents and Settings\" & currentUserName & "\Local Settings\Apps\2.0", EnvironmentVariableTarget.Process)
person Fernum    schedule 27.07.2012
comment
Въпреки това ще трябва да създадете пътища за околната среда за всяка операционна система. Ще задам отговора след още малко тестване. - person Fernum; 27.07.2012