我有一个C#项目(调用它MainProj)引用了其他几个DLL项目.通过将这些项目添加到MainProj引用中,它将构建它们并将其生成的DLL复制到MainProj的工作目录中.
我想做的是将这些引用的DLL放在MainProj工作目录的子目录中,即MainProj/bin/DLLs,而不是工作目录本身.
我不是一个非常有经验的C#程序员,但是来自C++世界,我假设一种方法是删除项目引用并通过路径和文件名显式加载所需的DLL(即在C++中LoadLibrary).然而,我更喜欢做的,如果有办法的话,就是设置某种"引用二进制路径",所以当我构建时它们都被自动复制到这个子目录中(然后从那里引用它们)我需要明确加载每个).这样的事情可能吗?
如果不是,那么C#中首选的方法是什么来实现我所追求的目标(即Assembly.Load/ Assembly.LoadFile/ Assembly.LoadFrom?某些东西AppDomain,或者System.Environment?)
首先,我的机器上有11和12个oracle客户端.但是当我尝试使用11g版本的oracle.dataacess.dll时.
我已经在regedit上删除了12c寄存器并停止了服务和machince.config相关.但该程序抛出"无法加载oraops12.dll ..".
oracle.dataacess找到dll配置的路径是什么?为什么它仍然试图加载oraops12而不是oraops11.
先感谢您.
我遇到了一个特殊的问题.我正在开发一个基于Windows的应用程序,它连接到Oracle数据库.
对于初始测试,我已经创建了安装程序并在我拥有的不同机器上进行了测试.每台机器都安装了Oracle客户端,我没有看到运行应用程序时出现任何问题.
但是当我与客户共享此安装程序时,他收到错误"无法加载DLL OraOps10.dll".当被问及他提到并在他的机器上安装了Oracle客户端时,他能够运行连接到Oracle数据库的其他C#应用程序.
我不明白为什么我的应用程序只会出错.我甚至尝试过在https://forums.oracle.com/forums/thread.jspa?threadID=67364上分享的建议,但仍然没有运气.
我甚至尝试在客户的机器上手动复制可执行文件和DLL.但仍面临同样的问题.
所以请帮助我,我还能做些什么.
谢谢和最好的问候
Sudhakar Chavali
PS:
我使用的是Windows XP操作系统,客户也使用相同的操作系统.两台机器都只是32位操作系统.
这是客户的oracle客户端安装的位置:C:\ oracle\product\10.2.0\client_1\bin,同样也是我的版本.
我们都在使用Oracle 10g.