c# - 32/64 位与 .NET 可执行文件混淆

标签 c# .net 32bit-64bit

我有一个使用 C# 使用 Visual Studio 2005 构建的可执行文件。 dumpbin 报告它是 x86,并声称它是作为 x86 目标构建的。然而,当我尝试执行它时,它不知何故变成了一个 64 位可执行文件,正如任务管理器、进程资源管理器和 procmon 所报告的那样,它显示它加载了 Framework64。由于无法加载 32 位 DLL,它最终失败了。 什么会导致这种行为?

最佳答案

您正在使用 AnyCPU 目标构建它。如果您希望它在 64 位系统上也是 x86,那么您必须以 x86 为目标。

当您以 AnyCPU 为目标时,加载程序在 64 位系统上将进程作为 64 位进程运行,但在 32 位系统上作为 32 位进程运行。

关于c# - 32/64 位与 .NET 可执行文件混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847284/

相关文章:

c# - 使用 Fluent NHibernate 自动映射字典时,不考虑元素列长度

javascript - 浏览器不在启用 CORS 的情况下跨域发送 cookie

java - 32位eclipse和64位java程序

c# - 加载 pcap 文件

c# - 如何从 SQL 数据库获取数据到组合框 - C#

.net - 表单例份验证票 : how to keep the user logged in after the browser has been closed?

c# - 是否可以使用 .Net 框架以编程方式记录对 Windows 共享(SMB 共享)的访问?

windows-8 - Windows 8 堆随机化

ios - 使用ios中的游戏中心在多人游戏中将NSDATA从32位发送到64位

c# - 如何以编程方式将访问键(快捷方式)添加到 WPF 上下文菜单?