Некорректные условия запуска wix в Windows Vista

Мое приложение должно работать

  • Win XP Sp3
  • Win Vista Sp2
  • Win 7 Sp1
  • Победа 8.1
  • Выиграть 10

Поэтому я добавил LaunchConditions в свой MSI. Кроме Win Vista все работает. В Win Vista я получаю сообщение об ошибке, что она не поддерживается. Вы можете объяснить, что не так с моими условиями запуска? Только Vista вызывает проблемы ...

<!-- Verify not an Unknown OS -->
    <Condition Message="Das Setup wurde noch nicht auf diesem Betriebssystem getestet und wird aus Sicherheitsgründen beendet. Bitte wenden Sie sich an den Support.">
      <![CDATA[VersionNT=501 OR VersionNT=502 OR VersionNT=600 OR VersionNT=601 OR VersionNT=603]]>
    </Condition>
    <!-- Verify Vista SP2 or above -->
    <Condition Message="$(var.ProdName) benötigt mindestens Windows Vista mit installiertem ServicePack 2.">
      <![CDATA[NOT VersionNT=600 OR (WindowsBuild=6002 AND ServicePackLevel >=2)]]>
    </Condition>
    <!-- Verify XP SP3 or above -->
    <Condition Message="$(var.ProdName) benötigt mindestens Windows XP mit installiertem ServicePack 3.">
      <![CDATA[NOT VersionNT=501 OR (WindowsBuild=2600 AND ServicePackLevel >=3)]]>
    </Condition>
    <!-- Verify Windows Server 2003 SP2 or above -->
    <Condition Message="$(var.ProdName) benötigt mindestens Windows Server 2003 mit installiertem ServicePack 2.">
      <![CDATA[NOT VersionNT=502 OR (WindowsBuild=3790 AND ServicePackLevel >=2)]]>
    </Condition>
    <!-- Verify Windows Server 2008 -->
    <Condition Message="$(var.ProdName) benötigt mindestens Windows Server 2008.">
      <![CDATA[NOT VersionNT=600 OR WindowsBuild=6001]]>
    </Condition>
    <!-- Verify Windows Server 2008 R2 -->
    <Condition Message="$(var.ProdName) benötigt mindestens Windows XP mit installiertem ServicePack 3.">
      <![CDATA[NOT VersionNT=601 OR WindowsBuild > 7100]]>
    </Condition>
    <!--Verify Windows 7 SP1 or above-->
    <!--
    <Condition Message="$(var.ProdName) benötigt mindestens Windows 7 mit installiertem ServicePack 1.">
      <![CDATA[Installed OR ((VersionNT = 601) AND ((WindowsBuild > 7100) AND (ServicePackLevel >= 1)))]]>
    </Condition>-->

    <!--Verify Windows 7 SP1 or above-->
    <Condition Message="$(var.ProdName) benötigt mindestens Windows 7 mit installiertem ServicePack 1.">
      <![CDATA[NOT VersionNT=601 OR (WindowsBuild > 7100 AND ServicePackLevel >= 1)]]>
    </Condition>

    <!-- .Net Framework 4.0 wird benötigt -->
    <PropertyRef Id="NETFRAMEWORK40FULL" />
    <Condition Message="$(var.ProdName) benötigt das .NET Framework 4.0 Full.">
      <![CDATA[Installed OR NETFRAMEWORK40FULL]]>
    </Condition>

    <!-- Kein Downgrade erlauben -->
    <Condition Message='Eine aktuellere Version von "$(var.ProdName)" ist bereits installiert. Das Setup wird nun beendet.'>
      <![CDATA[Installed OR NOT NEWER_VERSION_FOUND]]>
    </Condition>

person Froggie    schedule 17.07.2015    source источник


Ответы (1)


Общая проблема с условиями запуска в том, что они неверны. Для продолжения установки условие должно быть истинным. Например, ваше состояние Server 2008 должно измениться на что-то вроде VersionNT = 600 AND MsiNTProductType> 1, чтобы оно а) включало проверку сервера и б) все выражение оценивалось как истинное, если это версия Server 2008.

Точно так же проверка Vista должна быть чем-то вроде VersionNT = 600 AND WindowsBuild = 6002 AND MsiNTProductType = 1, потому что а) сборка уже включает уровень SP и б) тип продукта означает, что это не сервер, и в) все выражение оценивается как истинное на Система Vista SP2.

person PhilDW    schedule 17.07.2015