2016-03-22 15 views
0

Ich versuche, das Tutorial "Überprüfung auf Oldies" von https://www.firegiant.com/wix/tutorial/upgrades-and-modularization/checking-for-oldies/ zu tun.Wix Upgrade Version

<?xml version='1.0' encoding='Windows-1252'?> 
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> 
    <Product Name='Foobar 1.0.1' Manufacturer='Acme Ltd.' 
     Id='027F68D8-1963-4C76-8274-7091232BB4F4' 
     UpgradeCode='6768C9D3-52DF-4E7E-A8C3-F9CB9F29EA91' 
     Language='1033' Codepage='1252' Version='1.0.1' > 
    <Package Id='*' Keywords='Installer' Description="Acme's Foobar 1.0.1 Installer" 
     Comments='Foobar is a registered trademark of Acme Ltd.' Manufacturer='Acme Ltd.' 
     InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> 

    <UI Id="MyWixUI_Mondo"> 
     <UIRef Id="WixUI_Mondo" /> 
     <UIRef Id="WixUI_ErrorProgressText" /> 

     <DialogRef Id="UserRegistrationDlg" /> 

     <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="UserRegistrationDlg" Order="3">LicenseAccepted = "1"</Publish> 
     <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="UserRegistrationDlg">1</Publish> 
    </UI> 

    <Upgrade Id='10A11EA3-8A34-46A1-87D9-679C944E305C'> 
     <UpgradeVersion OnlyDetect='yes' Property='SELFFOUND' 
      Minimum='1.0.1' IncludeMinimum='yes' 
      Maximum='1.0.1' IncludeMaximum='yes' /> 
     <UpgradeVersion OnlyDetect='yes' Property='NEWERFOUND' 
      Minimum='1.0.1' IncludeMinimum='no' /> 
    </Upgrade> 


    <Property Id="INSTALLDIR"> 
     <RegistrySearch Id='AcmeFoobarRegistry' Type='raw' Root='HKLM' Key='Software\Acme\Foobar 1.0' Name='InstallDir' /> 
    </Property> 
    <Property Id="FILEB1EXISTS"> 
     <DirectorySearch Id="CheckFileDir" Path="[INSTALLDIR]" Depth="0"> 
     <FileSearch Id="CheckFile" Name="B1.txt" /> 
     </DirectorySearch> 
    </Property> 
    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" /> 



    <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" /> 
    <Property Id='DiskPrompt' Value="Acme's Foobar 1.0 Installation [1]" /> 

    <Directory Id='TARGETDIR' Name='SourceDir'> 
     <Directory Id='ProgramFilesFolder' Name='PFiles'> 
     <Directory Id='Acme' Name='Acme'> 
      <Directory Id='INSTALLFOLDER' Name='Foobar 1.0'> 
      <Component Id='MainExecutable' Guid='9805D06F-DF58-4FF5-A9E9-74B11C794D7A'> 

       <File Id='FoobarEXE' Name='FoobarAppl10.exe' DiskId='1' Source='FoobarAppl10.exe' KeyPath='yes'> 
       <Shortcut Id="startmenuFoobar10" Directory="ProgramMenuDir" Name="Foobar 1.0" WorkingDirectory='INSTALLDIR' Icon="Foobar10.exe" IconIndex="0" Advertise="yes" /> 
       <Shortcut Id="desktopFoobar10" Directory="DesktopFolder" Name="Foobar 1.0" WorkingDirectory='INSTALLDIR' Icon="Foobar10.exe" IconIndex="0" Advertise="yes" /> 
       </File> 
       <RemoveFile Id='LogFile' On='uninstall' Name='Foobar10User.log' /> 
      </Component> 
      <Component Id='HelperLibrary' Guid='5AE6F8C7-AEC7-43A0-B4D8-1178D7FC7C3A'> 
       <File Id='HelperDLL' Name='Helper.dll' DiskId='1' Source='Helper.dll' KeyPath='yes' /> 
      </Component> 

      <Component Id='Manual' Guid='0AC1B698-822E-4B56-8D78-42DDF84D8667'> 
       <File Id='Manual' Name='Manual.pdf' DiskId='1' Source='Manual.pdf' KeyPath='yes'> 
       <Shortcut Id='startmenuManual' Directory='ProgramMenuDir' Name='Instruction Manual' Advertise='yes' /> 
       </File> 
      </Component> 
      </Directory> 
     </Directory> 
     </Directory> 
     <Directory Id="ProgramMenuFolder" Name="Programs"> 
     <Directory Id="ProgramMenuDir" Name="Foobar 1.0"> 
      <Component Id="ProgramMenuDir" Guid="B36BF023-6797-476B-BAAD-4AFD5CCE7A9A"> 
      <RemoveFolder Id='ProgramMenuDir' On='uninstall' /> 
      <RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' /> 
      </Component> 
     </Directory> 
     </Directory> 

     <Directory Id="DesktopFolder" Name="Desktop" /> 
    </Directory> 



    <Feature Id='Complete' Level='1'> 
     <Feature Id='MainProgram' Level='1'> 
     <ComponentRef Id='MainExecutable' /> 
     <ComponentRef Id='HelperLibrary' /> 
     <ComponentRef Id='ProgramMenuDir' /> 
     </Feature> 

     <Feature Id='Documentation' Level='1'> 
     <ComponentRef Id='Manual' /> 
     <Condition Level="0">NOT FILEB1EXISTS</Condition> 
     </Feature> 
    </Feature> 

    <Icon Id="Foobar10.exe" SourceFile="FoobarAppl10.exe" /> 

    <Property Id='NOTEPAD'>Notepad.exe</Property> 
    <!--<CustomAction Id='LaunchFile' Property='NOTEPAD' ExeCommand='[SourceDir]Readme.txt' Return='asyncNoWait' /> 



    <InstallExecuteSequence> 
     <Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom> 
     <Custom Action='AlreadyUpdated' After='FindRelatedProducts'>SELFFOUND</Custom> 
     <Custom Action='NoDowngrade' After='FindRelatedProducts'>NEWERFOUND</Custom> 
    </InstallExecuteSequence>--> 
    <CustomAction Id='LaunchFile' Property='NOTEPAD' ExeCommand='[SourceDir]Readme.txt' Return='asyncNoWait' /> 


    <CustomAction Id='AlreadyUpdated' Error='Foobar 1.0 has already been updated to 1.0.1 or newer.' /> 
    <CustomAction Id='NoDowngrade' Error='A later version of [ProductName] is already installed.' /> 

    <InstallExecuteSequence> 
     <Custom Action='AlreadyUpdated' After='FindRelatedProducts'>SELFFOUND</Custom> 
     <Custom Action='NoDowngrade' After='FindRelatedProducts'>NEWERFOUND</Custom> 
    </InstallExecuteSequence> 




    </Product> 
</Wix> 

Mein Problem ist SELFFOUND und NEWERFOUND nie auf true gesetzt, so dass ich nie den Zustand erreichen die Meldung zu sehen AlreadyUpdated oder NoDowngrade

Ergebnis "FindRelatedProduct" im ausführlichen mode: MSI (c) (C0: F8) [08: 43: 46: 624]: Aktion: FindRelatedProducts Aktion 08:43:46: FindRelatedProducts. Suche nach verwandten Anwendungen Aktion Start 08:43:46: FindRelatedProducts. Aktion beendet 08:43:46: FindRelatedProducts. Rückgabewert 1.

MSI (04:60) [08: 43: 55: 263]: Aktion ausführen: FindRelatedProducts Aktion 08:43:55: FindRelatedProducts. Suche nach verwandten Anwendungen Aktion Start 08:43:55: FindRelatedProducts. MSI (04:60) [08: 43: 55: 263]: Aktion FindRelatedProducts wird übersprungen: bereits auf der Clientseite Aktion beendet 08:43:55: FindRelatedProducts. Rückgabewert 0. MSI (s) (04:60) [08: 43: 55: 263]: Überspringaktion: AlreadyUpdated (Bedingung ist falsch) MSI (s) (04:60) [08:43:55: 263]: Überspringende Aktion: NoDowngrade (Bedingung ist falsch)

Antwort

0

Vorausgesetzt, dass Ihre UpgradeCode-Guides und -Versionen korrekt sind, liegt möglicherweise ein kontextübergreifender Konflikt vor. Eine Installation pro Benutzer kann eine Installation pro Computer nicht aktualisieren (oder erkennen) und umgekehrt. Wenn Sie die Installation mit einem ausführlichen Protokoll ausführen, wird Ihnen möglicherweise mitgeteilt, dass FindRelatedProducts in Ihrem Installationskontext keine gefunden hat.

+0

Ich installiere mit einem ausführlichen Modus, legte ich das Ergebnis in meine ursprüngliche Nachricht. – Frederic7391

+0

Es sagt "bereits auf Client-Seite getan", was bedeutet, FindRelatedProducts wurde bereits in der UI-Sequenz getan, so dass Sie die übersprungenen nicht die eigentliche Suche gezeigt haben. – PhilDW

Verwandte Themen