有什么方法可以使用 Visual Studio 2008 创建 Windows 安装程序以同时针对 x86 和 x64 操作系统。
在 TargetPlatform 属性中,我只有 : x86
, x64
, Itanium
. 而且我知道还有一个地方叫Any CPU
,但我找不到。
另外,我不想创建两个安装程序。
有任何想法吗 ?
谢谢。
有什么方法可以使用 Visual Studio 2008 创建 Windows 安装程序以同时针对 x86 和 x64 操作系统。
在 TargetPlatform 属性中,我只有 : x86
, x64
, Itanium
. 而且我知道还有一个地方叫Any CPU
,但我找不到。
另外,我不想创建两个安装程序。
有任何想法吗 ?
谢谢。
它可以完成,但不能直接使用 Visual Studio。一般的做法是这样的:
您可以使用Orca创建转换。如果您想要商业解决方案,可以尝试 Advanced Installer 或 InstallShield。
如果这看起来太复杂,您可以简单地使用单独的 32 位和 64 位软件包。
它可以完成,但不能使用 VS 安装程序。我有一位同事使用 InstallShield 产品实现了这一目标,但我可以说这绝对是一次 hack,最后他得到了更好的结果,制作了两个不同的安装程序,一个用于每个目标位数。
我还需要开导你:
在 TargetPlatform 属性中,我只有:x86、x64、Itanium。而且我知道在某个地方还有一个叫做 Any CPU
该TargetPlatform
属性不会改变您正在安装的应用程序的位数,您会将它与程序集本身的目标平台混淆。MSI 是交付工具,其中的 .Net 程序集是有效负载。TargetPlatform
MSI 上的设置不控制 .Net 程序集的 JIT 编译方式,而是用于帮助确定安装路径(如果设置为 x86,则默认安装路径应为%PROGRAMFILES(x86)%
,并且将针对不同的注册表配置单元。
我可能是错的,但我很确定这是不可能的。您提到的 Any-CPU 由.Net 编译器用于您的程序集(.Net 程序集默认情况下与体系结构无关,但可以强制编译为 x86 或 x64)。但是由于 windows-Installer 是一个原生的 win32 exe,它不能生成为“Any-CPU”。因此,您必须为 x86 和 x64 生成 2 个相同的安装程序。