2008-12-03 108 views
1

我有一个使用Oracle.DataAccess进行连接的应用程序。我已经发现,通过在xcopy部署中使用ODAC 11,可以减少占用空间。这已经是一个巨大的胜利。是否可以使用ODP 11 xcopy部署而不更改PATH?

理想情况下,我们希望不必更改任何路径变量,并将所有ODAC文件放在应用程序文件夹下的子目录中。是否可以在不更改PATH变量的情况下执行此操作?有没有办法设置一个临时PATH变量?我们能否将所有必需的文件复制到应用程序文件夹?

总的想法是,我们希望尽可能地将我们的ODAC文件与可能在同一客户端上运行的其他应用程序隔离开来。

回答

3

As Marksuggested,您可以随时让您的应用程序更改当前进程的环境变量。请注意,显然,在进行任何ODP .NET调用之前您必须执行此操作。

另外请注意,如果你只需要纯ODP .NET功能,我指的是你专门不需要:

如果您在这种情况下,您只能与您的应用程序分发Oracle Instant Client。有关更多详细信息,请参阅this question

+0

非常感谢这个评论。事实证明,我们的应用程序确实需要第三方组件的ODBC连接。我对ODBC非常无知。是否有一个由MS提供的Oracle供应商?你是否有任何关于它如何执行的经验? – 2009-04-09 15:00:15

2

更改环境变量是一个甜头,但仅仅为了学术的完整性,我认为embedding assembly resolving实际上是解决这个问题的“正确”方法,即使它是更多的代码。

0

正如前面提到的,this StackOverflow问题是关于如何实现您的目标。 This答案是相当不错的。我评论了答案,我能够使用Easy Connect连接字符串,并通过将Instant Client Lite DLL和Oracle.DataAccess.dll复制到生产环境中的应用程序文件夹,在我的生产机器和开发机器上使用相同的二进制文件机。在我的开发机器上,我安装了完整的Oracle客户端。这样就没有必要修改路径语句了。

相关问题