2011-11-22 77 views
3

我想部署一個使用Oracle的ODP.net的客戶端應用程序,但我不想在每臺機器上安裝ODP.net。相反,我想在每臺機器上覆制託管的dll oracle.dataaccess.dll,並在共享磁盤上安裝它所依賴的本機dll。沒有安裝的ODP.NET部署

通過反編譯的代碼oracle.dataaccess.dll我已經看到,它調用會從註冊表中的本機DLL的位置的方法。因此,除了在每臺計算機上覆制oracle.dataaccess.dll之外,我還必須添加指向共享磁盤上本機dll的註冊表項。

我的問題:沒有一個預見從odp.net部署這種技術產生的任何問題?

回答

1

1)ODP.NET目前是託管和非託管DLL的混合。這也依賴於從Oracle客戶端下級託管DLL - 例如用於網絡等

2)您將需要每次都部署到機器上,這些需要ODP.NET和客戶端的DLL。

3)一個潛在的解決方案上你是看進入「XCOPY」部署包,以使它更容易些。請參閱ODP.NET下載頁面。這是一個較小的安裝,並允許您編寫自己的自定義安裝程序。您可以將這些XCOPY文件作爲您自己安裝的一部分。

4)甲骨文會做一個全面管理供應商在2012年公測,這將使這種情況要好得多(總規模將只有一對夫婦兆字節)。

基督教吉文

甲骨文

0

因爲他們是不受管理我認爲他們會成爲一個網絡路徑就OK了,雖然這應該很容易測試。不過,我建議,不要更改註冊表設置,您可能更好更改DllPath配置設置,如here所述。

3

您從最新的客戶端唯一需要的文件是: Oracle.DataAccess.dll OCI.DLL oraociicus11.dll OraOps11w.dll

只是要確定它們被複制到輸出目錄,一切都會工作。任何地方都不需要註冊。但是,由於Any CPU .NET應用程序將在32位操作系統上以32位模式運行,而在64位操作系統上以64位模式運行,您將需要使用各自體系結構的DLL進行單獨的x86和x64生成。