在64位上安装Prohbit 32位MSI。 [英] Prohbit 32 bit MSI from installing on 64 bit.

查看:198
本文介绍了在64位上安装Prohbit 32位MSI。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,



我有一对VS 2008安装项目。一个安装64位版本,一个安装32位版本。



我需要禁止32位安装程序通过任何kludge或规定的方式在64位窗口上安装。



我用Google搜索并用Google搜索无效。



可以这样做吗?



谢谢

解决方案

不幸的是,这是正确的,这是它的工作原理:32位安装程序安装在64-位Windows,因为它有WoW64允许运行32位应用程序。该怎么办?比如,你可以创建一个外部(32位)应用程序,询问操作系统(你是什么?),然后选择正确版本的MSI并运行它...



对我来说,它看起来像是Windows Installer的一个基本缺陷。有趣的是,MSI的目标平台与部署代码的实际目标平台无关。换句话说,如果错误地将一些MSI作为x86 / 64或IE-64与x84(32位)可执行文件一起使用,它们将被成功部署(到Program Files,而不是Program Files(x86) ))甚至会在那里工作。相反的情况也是可能的。只有64位MSI才能在32位Windows版本上启动...



-SA


< blockquote> Not VersionNT64 作为32位MSI中的启动条件似乎已经完成了这个技巧。


Hello,

I have a pair of VS 2008 setup projects. One installs a 64 bit version and one installs a 32 bit version.

I need to prohibit the 32 bit installer from installing on 64 bit windows via any kludge or prescribed way.

I have googled and googled to no avail.

Can this be done?

Thanks

解决方案

Unfortunately, that's right, this is how it works: 32-bit installer installs on 64-bit Windows, because it has WoW64 allowing to run a 32-bit application. What to do about it? Say, you can make an external (32-bit) application which asks the OS ("what are you?") and then chooses correct version of the MSI and runs it…

It looks like a fundamental defect of the Windows Installer to me. Interestingly, the target platform of the MSI has nothing to do with actual target platform of the deployed code. In other words, if, by mistake, you stuff some MSI targeted as x86/64 or IE-64 with x84 (32-bit) executables, they will be successfully deployed (to "Program Files", not to "Program Files (x86)") and will even work there. The opposite situation is also possible. Only 64-bit MSI won't start on 32-bit Windows versions…

—SA


Not VersionNT64 as a Launch Condition in the 32 bit MSI seems to have done the trick.


这篇关于在64位上安装Prohbit 32位MSI。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆