Wix 两个功能在不同的位置

Wix 两个功能在不同的位置,wix,Wix,我正在尝试做一个wix安装程序。 我定义了两个特性。我希望能够在不同的位置安装每个功能 <Feature Id='ServerInstallation' Title='Engine' Level='1' ConfigurableDirectory='TARGETDIR'> <ComponentGroupRef Id='ServerFileSystemGroup' /> <ComponentGroupRef Id='RegistryGroup' />

我正在尝试做一个wix安装程序。 我定义了两个特性。我希望能够在不同的位置安装每个功能

 <Feature Id='ServerInstallation' Title='Engine' Level='1' ConfigurableDirectory='TARGETDIR'>
  <ComponentGroupRef Id='ServerFileSystemGroup' />
  <ComponentGroupRef Id='RegistryGroup' />
</Feature>

我希望能够使用默认值c:\Program Files\ProductName\Feature1将其放在磁盘上的任何位置

 <Feature Id='ClientInstallation' Title='Moduletitle' Level='1' ConfigurableDirectory='INSTALLLOCATION'>
  <ComponentGroupRef Id='ClientSystemGroup' />

  <Feature Id='Subfeatureid' Title='Subfeature' Level='1'>
    <ComponentGroupRef Id='SubfeatureSystemGroup' />
  </Feature>
</Feature>

我希望能够使用默认值c:\Program Files\ProductName\Feature2将其放在磁盘上的任何位置

但是这两个功能应该能够安装在任何不相关的位置。 我试图定义根目录TARGETDIR,并在同一级别上定义INSTALLLOCATION,但出现了一个错误

Id为“INSTALLLOCATION”的目录不是有效的根目录。每个产品或模块只能有一个根目录,其Id属性值必须为“TARGETDIR”,其名称属性值必须为“SourceDir”


如何正确设置此目录?

查看您的
结构可能会有所帮助,但在任何情况下,您都不能将
TARGETDIR
用作可配置目录。只能在根部使用,所有东西都进入内部

我想你的应该是这样的:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="ProductFolder" Name="ProductName">
      <Directory Id="INSTALLDIR1" Name="Feature1" />    
      <Directory Id="INSTALLDIR2" Name="Feature2" /> 
    </Directory>
  </Directory>
</Directory>  

然后,您可以将
INSTALLDIR1
INSTALLDIR2
用于
ConfigurableDirectory
s

另请参见