我正在使用Visual Studio2008编写应用程序。在部署应用时,一些系统是32位的,而其他系统是64位的。因此,我计划在安装程序中提供32位/64位版本,然后根据操作系统的位数启动相应的版本。如何实现后者,即获取操作系统的bitness并启动相应的版本?
让我来澄清一下情况。我已经用C++开发了32位和64位的EXE应用程序。然后我想在C++(我不知道.NET)中检测窗口的位数,并启动相应版本的应用程序。
谢谢
发布于 2018-06-05 20:12:18
我建议您寻找一个功能更强大的MSI打包工具。Most professional tools为您提供了一个内置的引导程序,只需单击一下即可提供此功能。
VS安装项目对于基本的应用程序打包很有用,但从来没有打算为您提供全部功能。
发布于 2018-06-06 03:02:01
这取决于你所说的“启动相应的版本”是什么意思。这意味着你已经编写了需要选择的代码,在这种情况下,这根本不是安装程序的问题-你只需要找到操作系统的位,然后安装适当的MSI文件(或VS生成的setup.exe)。如果它是一个C#启动器,你可能会使用Environment.Is64BitOperatingSystem。
您的问题没有说明您是否正在交付将由客户端程序使用的代码(程序集、COM Dlls等)。我之所以提到这一点,是因为您的32位安装程序将在32位子系统中的64位操作系统版本上安装和运行。64位版本可能只包含本机64位代码。
请注意,您的64位安装程序无论如何都不会安装在32位操作系统上。
https://stackoverflow.com/questions/50691404
复制相似问题