两个功能在不同的位置

时间:2015-07-07 14:52:58

标签: wix

我正在尝试制作一个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”,其Name属性值必须为“SourceDir”。

我如何正确设置?

1 个答案:

答案 0 :(得分:0)

查看<Directory>结构可能会有所帮助,但无论如何,您都不能将TARGETDIR用作可配置目录。 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>  

然后,您可以将INSTALLDIR1INSTALLDIR2用于ConfigurableDirectory

另见