简体   繁体   中英

wix 3.8 silent install - ui level 2

I want to create a WIX Installer (3.8) that only installs silently.

I'm using the Wix file attached to demonstrate my issue.

At
UILevel=2

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

I'm setting the UI level to 2 According to: msdn.microsoft.com/en-us/library/aa372096%28v=vs.85%29.aspx then it's: " INSTALLUILEVEL_NONE 2 Completely silent installation. "

So far so good. I can install the "product" which is nothing but an empty directory. When I set the product's version to: Version="1.1.0.0" and want to do a major upgrade everything also works fine. When I look at the program an feature "tool" from Microsoft as shown here:

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

I see both versions (version 1.0.0.0 and 1.1.0.0) which is not what I expected the Wix installer should do.

When I remove

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

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

from the Wix script, install Version 1.0.0.0 and later after changing the wix script to 1.1.0.0 and major upgrading again, I only see 1 version (1.1.0.0) at the program an feature "tool" from Microsoft ( windows.microsoft.com/en-us/windows/uninstall-change-program#uninstall-change-program=windows-7 ) which is what I expect the windows installer should do.

So my question would be: What is missing or wrong at the script ( that the program an feature "tool" from Microsoft shows 2 Versions after a major upgrade ) Wix script:

<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>

First, there's no such thing as WiX script. WiX is not a imperative programming language, it's a declarative language.

Your major upgrade is failing because the condition on FindRelatedProducts is evaluating to false which means it can never detect the ProductCode of the previous MSI and remove it as part of the upgrade.

If you really want a silent install only, why not just omit a UI from the installer? Personally I have no idea why you are trying to do this and it doesn't follow established best practices.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM