【问题标题】:Two feature in different locations不同位置的两个功能
【发布时间】:2015-07-07 14:52:57
【问题描述】:

我正在尝试制作一个 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”。

如何正确设置?

【问题讨论】:

    标签: wix


    【解决方案1】:

    查看您的&lt;Directory&gt; 结构可能会有所帮助,但无论如何,您不能将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 作为您的ConfigurableDirectorys。

    另请参阅

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-13
      • 2011-01-16
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 2021-03-18
      相关资源
      最近更新 更多