Windows installer 如何覆盖msi中的ProgramFilesFolder?

Windows installer 如何覆盖msi中的ProgramFilesFolder?,windows-installer,Windows Installer,我有一个msi文件,我正试图安装在C:\Program文件以外的地方 目录表显示ProgramFilesFolder用作默认安装目录。通过阅读,我了解到ProgramFilesFolder是一个标准目录,因此将TARGETDIR作为属性传递给安装程序不会改变安装位置,即使目录表将其作为ProgramFilesFolder的父目录 如何覆盖安装位置?我在这方面完全是新手。您是否尝试过在命令行上传递TARGETDIR msiexec /i yourpackage.msi TARGETDIR="C:\

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

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

如何覆盖安装位置?我在这方面完全是新手。

您是否尝试过在命令行上传递
TARGETDIR

msiexec /i yourpackage.msi TARGETDIR="C:\Foo"
如果上述操作失败,我不知道在这种情况下是否有帮助,但我以前使用过一个工具来编辑MSI文件,它被调用,也许你可以使用它来覆盖一些MSI设置

另一种可能是找出MSI使用什么注册表项来找出ProgramFiles文件夹解析为什么,并在运行MSI之前更改该项,然后将其更改回去。

您是否尝试在命令行上传递
TARGETDIR

msiexec /i yourpackage.msi TARGETDIR="C:\Foo"
如果上述操作失败,我不知道在这种情况下是否有帮助,但我以前使用过一个工具来编辑MSI文件,它被调用,也许你可以使用它来覆盖一些MSI设置


另一种可能是找出MSI使用什么注册表项来找出ProgramFiles文件夹解析为什么,并在运行MSI之前更改该项,然后再将其更改回去。

首先,尝试将INSTALLDIR设置为所需的任何文件夹


如果这似乎没有任何作用,那么是时候查看组件表并查看这些记录的目录值了。

首先,尝试将INSTALLDIR设置为所需的任何文件夹


如果这似乎没有任何作用,那么是时候查看组件表,看看这些记录的目录值是什么。

是的,我尝试过传递TARGETDIR,但没有效果。我曾使用Orca查看MSI中的目录表,虽然它是第三方MSI,但编辑可能是一种可能性,我担心我的编辑可能会破坏某些东西。我没有想过要更改注册表,所以可以看看。是的,我尝试过传递TARGETDIR,但没有效果。我曾使用Orca查看MSI中的目录表,虽然它是第三方MSI,但编辑可能是一种可能性,我担心我的编辑可能会破坏某些东西。我没有想过要更改注册表,所以可以看一下。