如何在ui中将WiX Msi安装路径的默认值设置为Program Files?

时间:2017-05-02 06:12:45

标签: wix windows-installer msiexec wix3.10

我创建了一个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加载为默认位置?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

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

尝试使用如下目录定义:

<?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>

然后,遵循与此快速教程页面相同的原则here

你想做

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

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

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

你也不应该尝试硬编码像&#34; C:\ Program Files \&#34;这样的路径。在这个特定情况下,我可以给你两个简单的例子,为什么不给你。无法保证用户使用C:\驱动器作为主驱动器,甚至根本不使用C:\驱动器(这个{{3}}的一个轶事)。另一个问题是(对于32位安装)在32位计算机上,您希望安装到Program Files位置,但是在64位计算机上,您将要安装到&#34;程序文件(x86)&#34;位置。