我在Visual Studio 2012中导入了一个C#项目。它引用了Oracle.DataAccess。当我运行项目时,我得到一个例外。这是我从调试中得到的结果。
ex = {System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. --->
System.DllNotFoundException:无法加载DLL' OraOps12.dll': 指定的模块无法找到。 (HRESU的例外......
我不知道它在哪里寻找这个DLL。我安装了ODT。进行引用的Oracle.DataAccess.dll文件位于:
E:\应用\客户\ serban.stoenescu \产品\ 12.1.0 \的Client_1 \ odp.net \ BIN \ 4。
OraOps12.dll文件位于:
E:\应用\客户\ serban.stoenescu \产品\ 12.1.0 \的Client_1 \ BIN
知道发生了什么事吗?我如何找到该程序正在寻找此DLL的位置?我知道是否可以找出是否存在嵌套异常?
谢谢, 谢尔班
答案 0 :(得分:1)
也许您可以尝试使用Sysinternals Process Monitor,它可能会给您一些见解?
看起来您已经安装了ODP.NET,可能需要安装:Microsoft Visual C ++ 2010 Redistributable Package(x64)或(x86)。
Process Monitor showing missing MSVCR100.dll
如果你通过这个并在OracleConnection.Open()上看到NullReferenceException,那么你需要设置一个到你的客户端的路径(oraons.dll所在的地方,见 Connect to an Oracle database)
答案 1 :(得分:0)
确保已安装Oracle客户端。 Oracle Dll有32位和64位版本。所以请确保在项目中使用了正确的文件版本。