我的老板需要安装人员才能在我们客户的某台机器上安装软件。他希望将软件专门安装到“C:\ Program Files \ HisApplicationName”中,而不是“C:\ Program Files(x86)\ HisApplicationName”。我知道正确的答案是重写软件以容纳用户选择安装的任何目录,但遗憾的是,这是非常古老的软件和软件。需要在明天安装,所以我们只想强制安装程序指向客户端的“Program Files”目录。
我的问题是,当我将文件路径硬编码到安装程序的“DefaultLocation”属性中时,安装程序仍然会尝试指向Program Files(x86)目录。
有没有办法强制Windows安装程序/安装程序包指向Program Files&不是“Program Files(x86)”?
感谢。
答案 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
属性。