【发布时间】:2011-03-05 20:28:29
【问题描述】:
我有一个包含许多程序集和第三方实用程序的 VS 解决方案。在 64 位机器上运行时,我需要强制应用程序运行 32 位。该应用程序在 32 位机器上运行良好。我强制 .exe 文件只需要 32 位,当在 64 位机器上运行时,我收到“尝试加载格式不正确的程序”错误。我的理解是更改 exe 将强制所有程序集加载为 32 位。怎么回事?
【问题讨论】:
标签: c# .net winforms 32bit-64bit 32-bit
我有一个包含许多程序集和第三方实用程序的 VS 解决方案。在 64 位机器上运行时,我需要强制应用程序运行 32 位。该应用程序在 32 位机器上运行良好。我强制 .exe 文件只需要 32 位,当在 64 位机器上运行时,我收到“尝试加载格式不正确的程序”错误。我的理解是更改 exe 将强制所有程序集加载为 32 位。怎么回事?
【问题讨论】:
标签: c# .net winforms 32bit-64bit 32-bit
我知道这是一个老问题;也许你已经找到了答案。
我不熟悉设置 ILONLY 和 32BITREQUIRED... 通常在编译之前在编译器下拉框中选择 x86 而不是 ANYCPU 来处理您需要的一切。您也可以在配置管理器中验证您的所有应用是否都设置为编译为 x86。
您最有可能遇到的问题是您的第三方实用程序之一在 64 位机器上安装了 64 位 DLL,而您的强制 32 位应用程序正在尝试加载 64 位动态链接库。如果第三方 DLL 有 32 位和 64 位版本,安装程序很可能很聪明,知道应该放置哪一个。
两个地方可以去64位机上检查:
HTH! 詹姆斯
【讨论】: