我在.Net上使用ODP(使用Oracle.DataAccess dll 10.2编译)连接到Oracle上有一个非常简单的应用程序。 我想在将这个应用程序安装到其他计算机上之前检查“连接先决条件”(应用程序能否连接到数据库)?如何验证ODP和Oracle客户端连接的先决条件
如何检查在目标主机上是否安装了ODP.NET版本10.2或更高版本(注册表检查不适用)?
我知道我可以在注册表中检查ODP条目 - 但这不会检查Oracle客户端和客户端与ODP之间的兼容性。 另外,如果ODP是由ODAC XCopy安装安装的 - 注册表可能不会被新的ODP条目更新。 而且 - 如果我正在计算机上安装,安装了DB,Oracle Client可以不单独安装。
还有一个问题:当我试图从安装中运行“测试连接”方法,该方法使用机器上引用的dll,它只有ODAC(带有ODP)11, - “Oracle.DataAccess.Client.OracleException提供程序与Oracle.DataAccess.Client.OracleInit.Initialize()上的Oracle客户端版本不兼容Oracle.DataAccess.Client.OracleConnection..cctor()时出现的错误消息(ODAC 10.2和11的策略均存在在GAC(程序集)中,指向ODP 2x bin中的Oracle.DataAccess 11)。
那么,如何安装和检查哪些组件以确保适当版本的ODP和Oracle Client已安装并且应用程序将连接?
预先感谢您!
发生了什么事你的帖子? – Michael 2015-01-21 17:14:35
我更新了链接,并在我的答案中包含了代码。 – tsells 2015-01-21 20:48:51