【问题标题】:How to set default value of WiX Msi install path in the ui to Program Files?如何将 ui 中 WiX Msi 安装路径的默认值设置为 Program Files?
【发布时间】:2017-05-02 06:12:44
【问题描述】:

我创建了一个 WiX 安装程序 MSI。当我运行 msi 时,会在 UI 中询问安装路径。目前它加载包含大部分可用空间的驱动器。如何将其设置为始终位于程序文件文件夹中?我尝试了下面的行,但它没有用。

 <Property Id="WIXUI_INSTALLDIR" Value="C:\\Program Files\" />

下面是我得到的上述元素的错误。

 The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2343. The arguments are: , , 

如何让 UI 始终将 C:\Program Files 加载为默认位置?任何帮助将不胜感激。

【问题讨论】:

    标签: wix windows-installer wix3.10


    【解决方案1】:

    您想使用已定义的windows installer properties,它始终由 Windows Installer 定义(注意某些仅限 64 位的属性)。在这种情况下,特别是ProgramFilesFolder

    尝试使用这样的目录定义:

    <?xml version="1.0" encoding="UTF-8"?>
    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
        <Fragment>
            <Directory Id="TARGETDIR" Name="SourceDir">
                <Directory Id="ProgramFilesFolder">
                    <Directory Id="INSTALLDIR" Name="MyProductFolder" />
                </Directory>
            </Directory>
        </Fragment>
    </Wix>
    

    然后,遵循与此有关using WixUI_InstallDir 的快速教程页面相同的原则

    你会想做的

    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
    

    现在,当您显示允许您更改安装位置的 UI 页面时,它的值应该是 C:\Program File\MyProductFolder

    作为旁注,我会避免将安装位置设置为只是 C:\Program Files,因为这可能会导致您将大量无关文件添加到应该包含它们的位置在产品/程序文件夹中。

    您也不应该尝试硬编码像“C:\Program Files\”这样的路径。在这种特定情况下,我可以给你两个简单的例子,为什么不这样做。无法保证用户将 C:\ 驱动器用作他们的主驱动器,甚至根本不使用 C:\ 驱动器(here 的一个轶事)。另一个问题是(对于 32 位安装)在 32 位机器上,您需要安装到 Program Files 位置,但在 64 位机器上,您需要安装到“Program Files (x86)”位置.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多