2015-02-16 3 views
1

Я хочу создать установщик WIX (3.8), который устанавливается только тихо.wix 3.8 silent install - ui level 2

Я использую файл Wix, прилагаемый для демонстрации моей проблемы.

В
UILevel = 2

<InstallExecuteSequence>  
    <FindRelatedProducts Before="LaunchConditions">UILevel=2</FindRelatedProducts>  
</InstallExecuteSequence> 

Я установки уровня UI до 2 Согласно: msdn.microsoft.com/en-us/library/aa372096%28v= vs.85% 29.aspx то это: " INSTALLUILEVEL_NONE 2 Полностью автоматическая установка ."

Так это так хорошо. Я могу установить «продукт», который является ничем иным, как пустым каталогом. Когда я устанавливаю версию продукта на: Version = "1.1.0.0" и хочу сделать серьезное обновление, все работает отлично. Когда я смотрю на программы появилась функция «инструмент» от Microsoft , как показано здесь:

http://windows.microsoft.com/en-us/windows/uninstall-change-program#uninstall-change-program=windows-7

Я вижу обе версии (версия 1.0.0.0 и 1.1.0.0), который не то, что я ожидал, что Wix установщик должен делать.

Когда я удалить

<InstallUISequence>  
    <FindRelatedProducts Before="LaunchConditions">UILevel=2</FindRelatedProducts>     
</InstallUISequence> 

<InstallExecuteSequence>  
    <FindRelatedProducts Before="LaunchConditions">UILevel=2</FindRelatedProducts>  
</InstallExecuteSequence> 

из сценария Wix, установить версию 1.0.0.0, а затем после повторного изменения сценария WIX в 1.1.0.0 и основное обновление я вижу только 1 версию (1.1. 0.0) в программе есть функция «инструмент» от Microsoft (windows.microsoft.com/en-us/windows/uninstall-change-program#uninstall-change-program=windows-7) , что я ожидаю от окон установщик должен делать.

Так что мой вопрос будет: Что отсутствует или неправильно в сценарии (что программа это функция «инструмент» из Microsoft показывает 2 версии после капитального обновления) Wix сценария:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.1.0.0" Manufacturer="asdf" UpgradeCode="BE170BF6-0C06-4A50-B81B-CDF6609FAD5A"> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perUser" InstallPrivileges="limited" /> 

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." Schedule="afterInstallInitialize" /> 
    <MediaTemplate /> 

    <InstallUISequence>  
     <FindRelatedProducts Before="LaunchConditions">UILevel=2</FindRelatedProducts>     
    </InstallUISequence> 

    <InstallExecuteSequence>  
     <FindRelatedProducts Before="LaunchConditions">UILevel=2</FindRelatedProducts>  
    </InstallExecuteSequence>  

    <Feature Id="ProductFeature" Title="SetupProject1" Level="1"> 
     <ComponentGroupRef Id="ProductComponents" /> 
    </Feature> 
</Product> 

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="LocalAppDataFolder"> 
      <Directory Id="INSTALLFOLDER" Name="SetupProject1" /> 
     </Directory> 
    </Directory> 
</Fragment> 

<Fragment> 
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
    <Component Id="test" Guid="D6527568-4C76-493B-AF1F-9E973723E773" 
     SharedDllRefCount="no" KeyPath="no" NeverOverwrite="no" Permanent="no" Transitive="no" 
     Win64="no" Location="either"> 
     <CreateFolder/> 
     <RemoveFolder Id="ProductComponents" On="uninstall"/> 
     <RegistryValue Root="HKCU" Key="Software\MyFantasyCompany\MyApplicationName" Name="installed" Type="integer" Value="1" KeyPath="yes"/> 
    </Component> 
    </ComponentGroup> 
</Fragment> 
</Wix> 

ответ

3

Во-первых, сценарий WiX не существует. WiX не является обязательным языком программирования, это декларативный язык.

Ваше основное обновление не работает, поскольку условие на FindRelatedProducts оценивается как false, что означает, что он никогда не сможет обнаружить ProductCode предыдущего MSI и удалить его как часть обновления.

Если вы действительно хотите установить только тихую установку, почему бы не просто опустить пользовательский интерфейс от установщика? Лично я понятия не имею, почему вы пытаетесь это сделать, и это не соответствует установленным передовым методам.

+0

Hello Christopher, благодарит за ваш ответ. Я просто хочу развернуть пакет msi, как описано здесь: http://www.advancedinstaller.com/user-guide/tutorial-gpo.HTML Вместо " UILevel = 2 UILevel = 2 " постараюсь использовать это: " " с уважением Alex B. – bleissem

Смежные вопросы