Windows安装程序/安装程序项目:强制安装到“程序文件”,而不是x86?

时间:2012-03-15 01:46:04

标签: windows-installer setup-project

我的老板需要安装人员才能在我们客户的某台机器上安装软件。他希望将软件专门安装到“C:\ Program Files \ HisApplicationName”中,而不是“C:\ Program Files(x86)\ HisApplicationName”。我知道正确的答案是重写软件以容纳用户选择安装的任何目录,但遗憾的是,这是非常古老的软件和软件。需要在明天安装,所以我们只想强制安装程序指向客户端的“Program Files”目录。

我的问题是,当我将文件路径硬编码到安装程序的“DefaultLocation”属性中时,安装程​​序仍然会尝试指向Program Files(x86)目录。

有没有办法强制Windows安装程序/安装程序包指向Program Files&不是“Program Files(x86)”?

感谢。

1 个答案:

答案 0 :(得分:14)

除了一个不受支持的颠覆性黑客攻击外,Windows Installer根本无法做到这一点。

INSTALLDIR设置为C:\Progra~1\.....

请参阅,MSI具有向后兼容的功能,可以自动修复"当MSI标记为32位时,C:\Program Files\C:\Program Files (X86)的任何硬编码引用。它无法计算短名称版本并重定向它,所以我的黑客工作。假设他们没有禁用短文件名系统。

安装到C:\Program Files的唯一正确方法是将MSI标记为64位,并使用ProgramFiles64Folder属性而不是ProgramFilesFolder属性。

顺便说一句,如果你的老板不相信你,那么我建议找一个新老板。我已经写了16年的安装程序,我从来没有让PHB做出这样的决定。我是Windows Installer专家,而不是他。