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