【发布时间】:2014-01-29 13:26:46
【问题描述】:
我正在使用 Wix 创建一个安装程序,它将搜索用户 PC 上的目录并将相关应用程序安装到该目录。例如,我需要安装到文件夹ProductA\Utilities,其位置不在我的控制范围内。
为此,我尝试了以下方法:
<Property Id="UTILITIES_DIR">
<DirectorySearch Id="FindUtilsDir" Path="ProductA\Utilities"/>
</Property>
<Directory Id="TARGETDIR" Name="SourceDir">
<!-- WiX requires me to use a special folder at some point -->
<Directory Id="ProgramFilesFolder" Name="ProgramFiles">
<Directory Id="UTILITIES_DIR">
<Directory Id="INSTALLFOLDER" Name="MyUtility"/>
</Directory>
</Directory>
</Directory>
当我通过双击运行安装程序时,这一切正常,但是,当我通过 msiexec.exe 运行安装程序时,找到了 UTILITIES_DIR,但之后立即被覆盖:
来自日志文件:
MSI (c) (C0:0C) [16:49:34:064]:
PROPERTY CHANGE: Adding TARGETDIR property. Its value is 'F:\'.
MSI (c) (C0:0C) [16:49:34:064]:
PROPERTY CHANGE: Modifying ProgramFilesFolder property.
Its current value is 'C:\Program Files (x86)\'. Its new value: 'F:\ProgramFiles\'.
MSI (c) (C0:0C) [16:49:34:064]:
PROPERTY CHANGE: Modifying UTILITIES_DIR property.
Its current value is 'C:\ProductA\Utilities'. Its new value: 'F:\ProgramFiles\'.
值得注意的是,我机器上的 F:\ 是 C:\ 部分的网络共享,它报告的可用空间与 C:\ 完全相同,所以运行 .msi 时我似乎很幸运直接将 TARGETDIR 设置为 C:\,但从 msiexec 运行时,TARGETDIR 将设置为 F:。
有没有办法找到可能在任何根目录中的特定目录?
【问题讨论】:
标签: wix installation