2012-03-15 43 views
4

我的老板需要安装人员来将软件安装到我们客户的一台机器上。他希望将软件专门安装到“C:\ Program Files \ HisApplicationName”中,而不是“C:\ Program Files(x86)\ HisApplicationName”。我知道正确的答案是重写软件以适应用户选择安装的任何目录,但不幸的是,这是非常旧的软件&需要明天安装,所以我们只是想强制安装程序指向客户端“Program Files”目录。Windows安装程序/安装程序项目:强制安装到“Program Files”,而不是x86?

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

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

谢谢。

+2

它进入“Program Files(x86)”,因为它是一个32位应用程序。这是它所属的地方,除非机器的所有者本身改变了策略。试图解决这个问题就像90年代的主页一样,这些主页提供了关于如何改变浏览器的主窗口大小以及默认字体和颜色以适应网站的说明。 – 2012-03-15 01:53:59

+0

感谢您的回复Marcelo。不幸的是,这不是一个选项。说实话,这是一个可怕的软件,专门查找“Program Files”目录中的文件。查看任何其他目录将引发错误。如果我有时间重写这个,我会,但不幸的是,这个客户在明天需要这个。 – goalie35 2012-03-15 03:25:14

+0

如果这是一个特定客户端的一次性,也许创建一个链接(假设Vista/Win7)将解决这个问题。 – 2012-03-15 06:09:52

回答

13

除了一个不受支持的颠覆破解之外,你所要求的仅仅是Windows Installer无法实现的。

设置INSTALLDIRC:\Progra~1\.....

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

安装到C:\Program Files的唯一正确的方法是,以纪念MSI为64位,并使用ProgramFiles64Folder属性,而不是ProgramFilesFolder财产。

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

+0

谢谢。这工作!我知道这是一个黑客攻击,我永远不会采用这种典型的安装方式,而是为了安装这个旧的,笨重的软件......它的确有诀窍! – goalie35 2012-03-16 01:48:05

+0

很好的回答! (特别是最后一点!!) – tommed 2012-08-13 16:24:21

+0

工程就像一个魅力,我怎么没有更快找到这个!谢谢 – user616 2015-11-16 16:57:36

相关问题