1

My App должен работать наWIX launchconditions на Windows Vista не правильно

  • Win XP Sp3
  • Win Vista SP2
  • Win 7 Sp1
  • Win 8,1
  • Win 10

Итак, я добавил LaunchConditions в свой MSI. Кроме Win Vista все работает. На win Vista я получаю сообщение об ошибке, которое не поддерживается. Можете ли вы объяснить, что не так с моими LaunchConditions? только 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> 

ответ

2

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

Аналогично, проверка Vista должна быть чем-то вроде VersionNT = 600 И WindowsBuild = 6002 И MsiNTProductType = 1, потому что a) build alreasy включает уровень SP и b) тип продукта означает, что это не сервер, и c) все выражение оценивает на true в системе Vista SP2.