Вопрос

Я использую бета-версию Wix3 с пользовательским интерфейсом Feature Tree. Я устанавливаю несколько сборок как отдельные компоненты в пользовательский подкаталог внутри ProgramFiles, а также в GAC. Кроме того, я хотел бы упаковать версии DEBUG тех же сборок, что и один компонент, и позволить пользователю решать, устанавливать их или нет. Теперь эта функция с отладочными сборками по умолчанию отключена, но отладочные сборки устанавливаются независимо.

Под соответствующим фрагментом:

<DirectoryRef Id="INSTALLDIR">
  <Directory Id="bin" Name="bin">
    <Directory Id="Debug" Name="Debug">
      <Component Id="DebugComponent" Guid="PUT-GUID-HERE">
        <File Id="DebugAssemblyXXX" DiskId="1" Source="Debug\XXX.dll"></File>
      </Component>
    </Directory>
    <Directory Id="Release" Name="Release">
      <Component Id="ReleaseComponent" Guid="PUT-GUID-HERE">
        <File Id="ReleaseAssemblyXXX" DiskId="1" Source="Release\XXX.dll"></File>
      </Component>
    </Directory>
  </Directory>
</DirectoryRef>

<Feature Id="All" ConfigurableDirectory="INSTALLDIR" Title="Title" Level="1"
         Display="expand" AllowAdvertise="no" Absent="disallow" Description="Desc">

  <Feature Id="DebugAssemblies" Title="Debug Assemblies" Level="1000" Absent="allow"
           AllowAdvertise="no" Description="Debug versions of assemblies.">
    <ComponentRef Id="DebugComponent" />
  </Feature>

  <Feature Id="ReleaseFeature1" Title="Feature" Level="3"
           AllowAdvertise="no" Description="Another description">
    <ComponentRef Id="ReleaseComponent"/>
  </Feature>
</Feature>

Странная вещь в том, что если я снова запускаю MSI-файл и перехожу на " Change " и отключите функцию отладки, сборки отладки будут удалены, например, логика отлично работает на этот раз.

INSTALLLEVEL по умолчанию - 3.

Есть предложения?

Это было полезно?

Решение

В случае, если кто-то еще застрянет с этим: очевидно, функция верхнего уровня не должна называться " All " как в моем случае - это может иметь значение по умолчанию для Wix / Windows Installer. После переименования его во что-то другое все работает как положено.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top