探测组件

时间:2010-11-14 20:30:49

标签: .net oracle assemblies probing

几年前,我开发了一个Windows服务应用程序(VB.NET框架1.1),它使用System.Data.OracleClient访问Oracle数据库。
由于那个驱动程序给了我很多麻烦,我想引用更好的oracle dataprovider(Oracle.DataAccess.dll)。
在我的电脑上一切正常 问题是当我尝试在服务器上发布我的应用程序时(Windows 2000) 我无法在该服务器上安装新的oracle数据提供程序,并且有一个旧的oracle 9.0安装(我的应用程序引用oracle 9.2)。 我已将整个目录(C:\ oracle \ ora92 \ bin)从我的电脑复制(无安装)到服务器,但我不知道如何引用Oracle数据提供程序。 我知道这不是一种“干净”的做事方式,但我没有安装新软件的可能性 我已经看到,如果我将我的应用程序(和所有文件)复制到C:\ oracle \ ora92 \ bin文件夹中,一切正常。
我想将该目录指定为我的应用程序的探测目录。 我尝试过在网上找到的不同解决方案,但它们似乎都没有用
我想在运行时或我的配置文件中设置一个文件夹,以便我的应用程序可以使用那里的程序集(以及所有依赖项)。

我可以为框架2.0升级我的应用程序
谢谢你

Alberto

1 个答案:

答案 0 :(得分:1)

反过来 - 将Oracle程序集放入应用程序的根目录中。甚至更好 - 将程序集放入服务器上的GAC。用于它的实用程序(gacutil)应该在服务器上运行得很好。

也许这可以帮到你:C#: Custom assembly directory

如果其他所有方法都失败了,您可以订阅AppDomain的AssemblyResolve事件:

Assembly Resolve