我有一个包含许多程序集和第三方实用程序的VS解决方案。我需要在64位计算机上运行时强制应用程序运行32位。该应用程序在32位计算机上运行良好。我强制.exe文件只需要32位,当在64位机器上运行时,我得到“尝试加载一个格式不正确的程序”错误。我的理解是,更改exe会强制所有程序集加载为32位。发生了什么事?
答案 0 :(得分:1)
我知道这是一个老问题;也许你已经找到了答案。
我不熟悉设置ILONLY和32BITREQUIRED ...通常在编译下拉框中选择x86而不是ANYCPU,然后编译处理你需要的一切。您可以验证所有应用程序是否也设置为在配置管理器中编译为x86。
最有可能的是,您遇到的是第三方实用程序之一在64位计算机上安装了64位DLL,而您的强制32位应用程序正在尝试加载64位DLL。如果第三方DLL具有32位和64位版本,则安装程序很可能足够聪明地知道要放置哪一个。
您可以在64位计算机上检查两个位置:
HTH! 詹姆斯