我有一个使用Oracle.DataAccess进行连接的应用程序。我已经发现使用带有xcopy部署的ODAC 11可以减少占用空间。这已经是一个巨大的胜利。
但理想情况下,我们不希望更改任何路径变量,并将所有ODAC文件放在应用程序文件夹下的子目录中。是否可以在不更改PATH变量的情况下执行此操作?有没有办法设置临时PATH变量?我们可以将所有必要的文件复制到应用程序文件夹吗?
一般的想法是,我们希望尽可能地将ODAC文件与可能在同一客户端上运行的其他应用程序隔离开来。
答案 0 :(得分:4)
System.Environment.SetEnvironmentVariable允许您修改流程环境块。不过,这对于臭名昭着的PITA而言是否足以让人猜测。 ;)
答案 1 :(得分:3)
作为Mark suggested,您始终可以让应用程序更改当前进程的环境变量。请注意,显然,您必须在进行任何ODP .NET调用之前执行此操作。
另请注意,如果您只需要纯ODP .NET功能,我的意思是您特别不需要:
如果您是这种情况,则只能在您的申请中分发Oracle Instant Client。有关详细信息,请参阅this question。
答案 2 :(得分:2)
更改环境变量是一个甜蜜的黑客,但只是为了学术完整性,我认为embedding assembly resolving实际上是解决此问题的“正确”方法,即使它是更多代码。
答案 3 :(得分:0)
答案 4 :(得分:0)