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

时间:2011-09-19 14:15:02

标签: vb.net visual-studio visual-studio-2010 odp.net

自安装最新版本的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.

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

为什么我会在Markup View中收到警告?

3 个答案:

答案 0 :(得分:7)

在项目属性中明确地将“平台目标”设置为“x86”或“x64” - >构建标签。 enter image description here

请勿将其设置为“任何CPU”。这是导致典型Oracle软件质量的驱动程序神经衰弱的许多常见情况之一。

答案 1 :(得分:1)

您可以查看的想法:

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

答案 2 :(得分:1)

原来ODAC 11.2.0.2 xcopy安装程序没有正确注册所有dll(See bottom answer)。结果,Oracle.DataAccess.dll(64位)被复制到BIN目录中,并且VS在标记视图中尝试加载它时导致警告。手动注册丢失的DLL并重新启动后,我不再遇到问题。