将64位和32位版本的应用程序转换为相同的二进制文件?

我们正在尝试在64位和32位平台上部署应用程序。 有没有办法把这两个编译版本的代码放在同一个二进制文件中,苹果和NeXT的胖二进制文件

理想情况下,我们可以运送一个.exe文件来决定执行哪个版本的代码。 我们的目标是Windows XP及更高版本。

Solutions Collecting From Web of "将64位和32位版本的应用程序转换为相同的二进制文件?"

一种方法可能是提供一个引导应用程序来确定体系结构并选择合适的可执行文件来运行。 所以基本上,快捷方式或你的应用程序简单地启动引导程序,然后启动相应的应用程序。 如果您的应用程序是Windows服务,这可能会更棘手。

Process Explorer(是sysinternals,现在由Microsoft拥有)执行此操作。 它是一个32位应用程序,用于检测64位环境,写出另一个二进制文件并在退出时将其删除。 http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

最简单的方法是由安装程序处理这个问题 – 每个二进制文件将有两个版本,并根据哪个系统的位置在目标机器上复制必要的版本。