2010-11-14 67 views
0

幾年前,我開發了一個windows服務應用程序(VB.NET框架1.1),它使用System.Data.OracleClient訪問Oracle數據庫。
由於該驅動程序給了我很多麻煩,我想引用Oracle數據提供程序(Oracle.DataAccess.dll),它工作得更好。
在我的電腦上一切正常。
問題是當我嘗試在服務器上發佈我的應用程序時(Windows 2000)。
我無法在該服務器上安裝新的Oracle數據提供程序,並且存在Oracle 9.0的舊安裝(我的應用程序引用了oracle 9.2)。
我從我的電腦拷貝(不安裝)整個目錄(C:\ oracle \ ora92 \ bin)到服務器,但我不知道如何引用Oracle數據提供者。 我知道這不是一種「乾淨」的做事方式,但我沒有安裝新軟件的可能性。
我已經看到,如果我複製我的應用程序(和所有文件)在C:\ oracle \ ora92 \ bin文件夾中一切正常。
我想指定該目錄作爲我的應用程序的探測目錄。 我試過在網上找到的不同解決方案,但它們都不起作用。

我想在運行時或在我的配置文件中設置文件夾,以便我的應用程序可以使用程序集(以及所有依賴項)。

我可以升級我的應用程序的框架2.0。

謝謝
探測組件

阿爾貝託

回答

1

周圍的人用另一種方式 - 把甲骨文組件到應用程序的根目錄。或者甚至更好 - 將程序集放到服務器上的GAC中。用於那個(gacutil)的實用程序應該在服務器上運行就好了。

也許這可以幫助你:C#: Custom assembly directory

,如果一切都失敗了,你可以訂閱的AppDomain的AssemblyResolve事件:

Assembly Resolve

+0

感謝您的幫助Femaref。我可以將Oracle程序集放入GAC或我的應用程序的bin文件夾中。問題是,該文件夾中有超過290個文件。我以爲我可以設置一個變量。就像環境變量PATH一樣,這樣我的應用程序就知道在哪裏引用其他程序集,但顯然這是不可能的。 – LeftyX 2010-11-15 08:12:15

+0

在帖子中添加了一個鏈接。也許這可以幫助你。 – Femaref 2010-11-15 10:02:32