2009-10-05 72 views
1

我正在尝试通过Visual Studio 2008中的实体框架创建与Oracle数据库的连接。我正在运行64位Vista Ultimate。由于应用程序类型导致无法访问oci.dll

起初,我甚至很难通过Visual Studio连接到数据库,但最终通过安装10204_vista_w2k8_x64_production_db和ODTwithODAC1110720,但只有通过Visual Studio进行接口所需的最小部分才能工作。

我对此设置完全陌生,所以很可能我犯了一个错误,但安装这两个软件包是我通过Visual Studio创建连接的唯一方法。

我做了连接,并使用向导来创建一个。 edmx文件。模型和协会创建完美,我认为事情会很好地发挥作用。我使用默认名称“实体”作为参考名称。

当我尝试做以下

filingsContext = New Entities() 
filingsContext.TABLE_NAME_HERE.First() 

我得到这个下面的错误..

的InnerException = {“无法加载C:\程序\ adexter \ OraHome_1 \ OCI.DLL请检查你是否在64x应用程序中使用了64x版本的Oracle客户端。“}

在我运行应用程序的每个时间点上,我都可以连接到oracle数据库吗?

回答

1

您遇到的问题是您试图在64位应用程序中加载32位版本的DLL。尝试切换Visual Basic应用程序为目标的32位/ x86和应该解决这个问题

  1. 右键解决方案资源管理
  2. 选择属性,点击该项目
  3. 转到编译选项卡
  4. 点击高级编译选项
  5. 更改目标CPU组合的x86
  6. 点击OK
+0

感谢您的回复!这确实奏效。我之前尝试过类似于配置管理器的类似功能,但却被其他弹出的错误所关闭。但是,它们似乎并没有阻止应用程序的运行,而且我似乎能够连接到数据库。谢谢!但是,我现在正在接收几个错误,其中大部分与 一样无法加载汇编或xml文档文件。无法加载文件或程序集或其某个依赖项。试图加载格式不正确的程序。 看来这些是失败的构建事件? – Alex 2009-10-05 22:40:40

1

确保您已经使用ODAC安装了ODT的64位版本。

查看this answer关于如何确定应用程序将使用哪个客户端版本(某些链接最终目标更具体地说是C#语言,但它们可以适应VB .NEt)。

相关问题