我正在编写一个需要调用Oracle数据库的Windows服务。我为编译器设置了.Net 2.0和x86的目标环境。我在我的11.2.0客户端上为oracle引用了Oracle.DataAccess.dll文件。如果我将其复制到GAC中,它将显示为x86架构。
现在,每当我尝试编译服务时,我都会收到“尝试加载格式不正确的程序”错误。它显示为服务的resx文件以及ServiceInstaller resx文件。
无论我是否针对x86或x64平台,都会发生这种情况。也无论设置DLL是否复制本地。知道什么是错的吗?
答案 0 :(得分:0)
ODP.NET未完全托管,因此它调用32位非托管支持DLL(如果安装了32位ODAC)或64位非托管支持DLL(如果安装了64位ODAC)。
首先,你需要正确设置目标,然后你需要确保正在挑选正确的Oracle DLL风格。
在这种情况下,您选择了x86(32位),这意味着您还需要安装32位ODAC,并确保您没有错误地引用64位Oracle dll。
Christian Shay
甲骨文