自安装最新版本的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中收到警告?
答案 0 :(得分:7)
在项目属性中明确地将“平台目标”设置为“x86”或“x64” - >构建标签。
请勿将其设置为“任何CPU”。这是导致典型Oracle软件质量的驱动程序神经衰弱的许多常见情况之一。
答案 1 :(得分:1)
您可以查看的想法:
答案 2 :(得分:1)
原来ODAC 11.2.0.2 xcopy安装程序没有正确注册所有dll(See bottom answer)。结果,Oracle.DataAccess.dll(64位)被复制到BIN目录中,并且VS在标记视图中尝试加载它时导致警告。手动注册丢失的DLL并重新启动后,我不再遇到问题。