Windows services x64盒上的Oracle Visual Studio开发人员,目标为x86,格式错误

Windows services x64盒上的Oracle Visual Studio开发人员,目标为x86,格式错误,windows-services,x86,odp.net,Windows Services,X86,Odp.net,我正在编写一个需要调用Oracle数据库的Windows服务。我为编译器设置了.NET2.0和x86的目标环境。我在我的11.2.0 Oracle客户端上引用了Oracle.DataAccess.dll文件。如果我将其复制到GAC中,它将显示为x86体系结构 现在,每当我尝试编译服务时,我都会收到一个“尝试加载格式不正确的程序”错误。它显示为存在于服务的resx文件以及ServiceInstaller resx文件中 无论我是针对x86还是x64平台,都会发生这种情况。也不管是否将DLL设置为复

我正在编写一个需要调用Oracle数据库的Windows服务。我为编译器设置了.NET2.0和x86的目标环境。我在我的11.2.0 Oracle客户端上引用了Oracle.DataAccess.dll文件。如果我将其复制到GAC中,它将显示为x86体系结构

现在,每当我尝试编译服务时,我都会收到一个“尝试加载格式不正确的程序”错误。它显示为存在于服务的resx文件以及ServiceInstaller resx文件中


无论我是针对x86还是x64平台,都会发生这种情况。也不管是否将DLL设置为复制本地。知道怎么回事吗?

ODP.NET不是完全托管的,因此它需要支持32位非托管DLL(如果安装了32位ODAC)或支持64位非托管DLL(如果安装了64位ODAC)

因此,首先,您需要正确地获取目标集,然后需要确保选择了正确风格的Oracle DLL

在本例中,您选择了x86(32位),这意味着您还需要安装32位ODAC,并确保您没有错误地引用64位Oracle DLL

克里斯蒂安·谢伊
神谕