你如何在msi中覆盖ProgramFilesFolder?

时间:2010-04-14 11:55:13

标签: windows-installer

我有一个msi文件,我试图在C:\ Program Files以外的地方安装。

目录表显示ProgramFilesFolder用作默认安装目录。从阅读this blog post我了解ProgramFilesFolder是一个标准目录,因此将TARGETDIR作为属性传递给安装程序将不会更改安装位置,即使目录表将其作为ProgramFilesFolder的父目录也是如此。

如何覆盖安装位置?我是这个领域的新手。

2 个答案:

答案 0 :(得分:1)

尝试在命令行上传递TARGETDIR吗?

msiexec /i yourpackage.msi TARGETDIR="C:\Foo"

如果上述操作失败,请不要知道它是否可以在这个实例中提供帮助,但我之前使用过工具来编辑MSI文件,它被称为Orca,也许你可以用它来覆盖一些MSI设置?

另一种可能性可能是弄清楚MSI使用哪些注册表项来找出ProgramFiles文件夹解析的内容,并在运行MSI之前更改该条目,然后将其更改回来。

答案 1 :(得分:0)

首先,尝试将INSTALLDIR设置为您想要的任何文件夹。

如果这似乎没有做任何事情,那么现在是时候看一下组件表,看看那些记录的Directory_值是什么。