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