【问题标题】:Using WiX to target specific folder使用 WiX 定位特定文件夹
【发布时间】: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


    【解决方案1】:

    您可以将 SourceDir 设置为 WindowsVolume。所以它不会再改变了。

    <SetDirectory Id="SourceDir " Value="[WindowsVolume]" />
    

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      相关资源
      最近更新 更多