无法加载文件或程序集“Oracle.DataAccess”——标记视图

4

自从安装了最新版本的ODAC 11.2.0.2.1,我遇到了一个奇怪的问题。我同时安装了32位和64位版本,因为我需要为两种架构开发应用程序。我的电脑是Win 7 64位。

自从安装ODAC并引用了新的64位ODP.NET版本后,在Visual Studio 2010中的一个Web应用程序项目中,当我在标记视图中查看所有aspx页面和主页面时,会出现以下警告。

ASP.NET runtime 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.

警告仅限于Markup View。Web应用程序构建和运行良好。我尝试清理了VS临时ASP.NET文件,但这并没有解决问题。我删除了应用程序中所有对Oracle.DataAccess的引用,然后重新添加它们以确保所有引用都是正确的。Web应用程序编译为“Any CPU”,但它使用64位的Oracle.DataAccess。我创建了一个新项目,并引用了相同的项目和dll,我没有收到警告,因此它似乎是特定于此项目文件的。
有任何想法为什么在Markup View中会收到警告吗?
3个回答

7
在项目属性 -> 构建选项卡中,明确将“平台目标”设置为“x86”或“x64”。不要将其设置为“任何 CPU”。这是导致典型 Oracle 软件质量的驱动程序紧张崩溃的许多常见情况之一。 enter image description here

这是另一种解决方案。毕竟,在生产服务器上不要安装32位库听起来很糟糕,现在所有东西都应该是64位的。如果我能得到+10就太好了! - Haikal Nashuha

2
原来,ODAC 11.2.0.2的xcopy安装程序没有正确注册所有的dll文件(参见底部答案)。因此,Oracle.DataAccess.dll (64位)被复制到BIN目录中,并在Markup View中加载时,VS试图加载它,导致警告。手动注册缺失的DLL并重新启动后,问题已经解决。

1

您可以尝试以下方法:

  • 检查您的Visual Studio项目中的Oracle.DataAccess引用是否将“Specific Version”属性设置为“False”(这不是默认设置)。
  • 使用Fuslogvw.exe确定.NET Framework正在尝试哪些位置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接