我正在尝试运行此 Web 应用程序.我不断收到此错误无法加载文件或程序集Oracle.DataAccess"或其依赖项之一.试图加载格式不正确的程序."异常详细信息:System.BadImageFormatException.无法加载文件或程序集Oracle.DataAccess"或其依赖项之一.试图加载格式不正确的程序."以下是我已经尝试过的东西.
I am trying to run this web application. I keep getting this error "Could not load file or assembly "Oracle.DataAccess" or one of its dependencies. An attempt was made to load a program with an incorrect format." Exception details: System.BadImageFormatException. "Could not load file or assembly "Oracle.DataAccess" or one of its dependencies. An attempt was made to load a program with an incorrect format." Below are the things that I already tried.
我在 64 位机器上安装了 32 位客户端.操作系统为windows 7.
I have 32 bit client installed on 64 bit machine. The operating system is windows 7.
单独编译每个单独的项目.删除所有oracle依赖文件dll,然后单独添加2.112.3.0的dll,然后编译每个项目
compile each individual project individually. Deleted all the oracle dependent files dll and then added the 2.112.3.0 dll's individually and then compiled each project
使用此语句在 GAC 上注册 32 位 dllgacutil/i %ORA_HOME4%odpin4Oracle.DataAccess.dll
Register the 32 bit dll on GAC using this statement gacutil /i %ORA_HOME4%odpin4Oracle.DataAccess.dll
gacutil/i %ORA_HOME4%aspin4oracle.web.dll
gacutil /i %ORA_HOME4%aspin4oracle.web.dll
对于上面两条语句,我从c:Program Files(x86)Microsoft sdkwindowsv7.0ABinNETFX4.0 ToolsX64复制了gacutil.exe到 C: 驱动器然后
for the above two statements, I copied the gacutil.exe from c:Program Files(x86)Microsoft sdkwindowsv7.0ABinNETFX4.0 ToolsX64 to C: drive and then
我执行了上面两条语句:
I executed the above two statement:
gacutil/i %ORA_HOME4%odpin4Oracle.DataAccess.dllgacutil/i %ORA_HOME4%aspin4oracle.web.dll执行上面两条语句时,没有收到任何消息,我是在管理员权限下在Dos windows中执行的.
gacutil /i %ORA_HOME4%odpin4Oracle.DataAccess.dll gacutil /i %ORA_HOME4%aspin4oracle.web.dll when I executed the above two statements, I didn't get any message, I executed them in Dos windows under administrator privilege.
c:windowsMicrosoft.NetV4.0.30319临时 ASP 文件我还将 web 应用程序构建平台目标更改为 X86,最初是在任何 CPU".出于沮丧,我还尝试将平台目标更改为 X64,然后收到错误消息说
c:windowsMicrosoft.NetV4.0.30319 emporary ASP files I also changed the web application build Platform target to X86, Originally, it was at "ANy CPU". out of frustration, I also tried changing the platform target to X64 and then I got the error message saying
"冷不加载文件或汇编.网络应用程序"或其依赖项之一.试图加载格式不正确的程序.
" Cold not load file or assemble . webapp" or one of its dependencies. An attempt was made to load a program with an incorrect format.
我的计算机上没有安装 IIS,我在 Visual Studio 2010 中运行此应用程序,因此我认为它将使用 Visual Studio 附带的内置 IIS.
I don't have IIS installed on my computer, I am running this application in visual studio 2010 so I think it will be using the inbuilt IIS that comes with visual studio.
我花了很多时间解决这个问题,但仍然一次又一次地出现同样的错误.
I spend lot of hours resolving this issue, but still getting the same error again and again.
推荐答案当我从一台机器移到另一台机器并重新安装所有东西时,问题再次出现.就我而言,我同时使用 32 位和 64 位 Oracle ODP.NET 安装.
Had the issue again when i moved from one machine to another and had everything reinstalled. In my case, i'm using both 32bit and 64bit Oracle ODP.NET installs.
在我的新机器上列出程序集时,我得到了以下列表
When listing the assemblies on my new machine i ended up with the following list
C:oracleproduct11.2.0X64odpin4>gacutil /l|findstr Oracle.DataAccess Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64 Policy.2.102.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64 Policy.2.111.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64 Policy.2.112.Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64 Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64 Policy.4.112.Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64此处只能看到 64 位 DLL.
only 64bit DLLs to be seen here.
我无法从 web.config 中看到它,但我使用的是 32 位版本.
I couldn't see it from the web.config but the one i was using was a 32bit version.
当我用 GACutil 检查我的旧机器时,我看到了更多的 DLL,还有 X86 的.
When checking my old machine with the GACutil, i saw more DLLs, also the X86 ones.
通过重新申请注册过程修复(此处引用了 x32/x64 版本)
Fixed by reapplying the registration process(both x32/x64 version referenced here)
OraProvCfg.exe /action:gac /providerpath:C:oracleproduct11.2.0x32ODP.NETin4Oracle.DataAccess.dll OraProvCfg.exe /action:gac /providerpath:C:oracleproduct11.2.0x64ODP.NETin4Oracle.DataAccess.dll在那之后,Visual Studio 就像一只快乐的兔子,并为我重新编译了所有东西.
after that , Visual Studio was a happy bunny and compiled everything again for me.
更多推荐
无法加载文件或程序集“Oracle.DataAccess"或其依赖项之一
发布评论