通过在笔记本电脑上下载并安装客户端管理工具和Visual Studio 2008,我已成功连接到C#(Visual Studio 2008)的Oracle数据库(10g).
Oracle客户端工具的安装占用空间超过200Mb,而且耗时很长.
有谁知道最小可行足迹是什么?我希望它是一个DLL和一个寄存器命令,但我觉得我需要安装一个oracle home,并设置各种环境变量.
我在我的代码中使用Oracle.DataAccess.
我试图在Win7 x64上运行我的.NET 3.5 WinForms应用程序.该应用程序使用NHibernate和System.Data.OracleClient来访问Oracle数据库.Oracle客户端是32位.
启动应用程序时,我收到以下错误消息
尝试加载Oracle客户端库会引发BadImageFormatException.在安装了32位Oracle客户端组件的64位模式下运行时,将发生此问题.
为此,我将构建目标定位到x86平台:

令我惊讶的是,尝试在Win7平台上执行新版本时出现了相同的错误消息.
NHibernate程序集在运行时加载Assembly.Load("...");.
可能是NHibernate DLL仍然以64位模式运行,而主机exe以32位模式运行.这听起来很奇怪.或者可能是因为某种原因,我的应用程序运行在64位模式,即使它的目标是x86?
更新:
我使用CorFlags检查了我的二进制文件,它标记为32位:
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 3
ILONLY : 1
32BIT : 1
Signed : 0
Run Code Online (Sandbox Code Playgroud)
我也在任务管理器中检查了它,它有一个*32后缀.
我还尝试并使用CorFlags将32位标志添加到我的应用程序附带的所有程序集.它仍会产生相同的错误消息.
我很困惑......困惑......困惑......