5

谁能告诉我如何找出运行 msi 安装程序的位置。

例如,我Sample.msi在桌面上的 InstallerExample 文件夹中有我的和 Manuals 文件夹。

我需要这些信息,以便我可以在 File/@Source 中使用它,如下所示。

<File Id="MyFileId" Name="MyFile" Source="[SourceDir]Manuals" KeyPath="yes" >

SourceDir应该有价值C:\Users\bla\Desktop\InstallerExample\Manuals

如果有人能帮我解决这个问题,那就太好了。

4

1 回答 1

2

我只是遇到了同样的问题,因为我希望我的自定义操作从我的 MSI 所在的位置读取文件,所以我需要路径。我能够使用

TARGETDIR

根据 MSDN 文档 TARGETDIR 是

the root destination directory for the installation

同样根据 MSDN,SourceDir 是

the root directory that contains the source cabinet file or the source file tree of the installation package

因此 SourceDir 属性指向一个真实的目录:您的 MSI 文件所在的目录。使用 msiexec /lvx* installer.log installer.msi 安装时,您可以在安装程序日志中看到这一点。

但是,由于某种原因,在解析 TARGETDIR 时会完全忽略 SourceDir。TARGETDIR 必须要么明确设置(例如在命令行上),要么解析为 ROOTDRIVE。如果 ROOTDRIVE 未明确设置,则它是具有最多可用空间的驱动器的根目录。

于 2012-08-15T14:05:58.700 回答