chi*_*oro 10 64-bit x86 corflags .net-3.5
我试图在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位标志添加到我的应用程序附带的所有程序集.它仍会产生相同的错误消息.
我很困惑......困惑......困惑......
| 归档时间: |
|
| 查看次数: |
17787 次 |
| 最近记录: |