2016-04-19 9 views
0

Я создал wix exe, используя burnstrapper для записи. Когда я пытаюсь выполнить крупное обновление, новая версия будет установлена. Функции, отсутствующие в новом обновлении, также удаляются из существующей структуры папок. Но в «Установка и удаление программ» я все еще могу найти обе установки. Я увеличил версию с 1.0.0.0 до 1.0.1.0 в файле Bundle.wxs проекта Bootstrapper. Я также увеличил версию в продукте Product проекта проекта с 1.0.0.0 до 1.0.1.0. Я не изменял код обновления в любом из этих файлов. Я также создал новый идентификатор GUID для идентификатора продукта в Product.wxs проекта установки. Что я здесь делаю неправильно? Почему предыдущая версия все еще присутствует в «Установка и удаление программ»? Пожалуйста посоветуй.Wix не удаляет предыдущую версию burn exe во время основного обновления.

Ниже приведен список Bundle.wxs проекта Bootstrapper.

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> 
    <Bundle Name="Kube Installer" Version="1.0.0.0" Manufacturer="Zone24x7" UpgradeCode="DA4CFB28-4441-43BE-9E8E-0E3C92206324"> 
    <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" > 
     <Payload SourceFile="..\CustomBA\BootstrapperCore.config"/> 
     <Payload SourceFile="..\CustomBA\bin\Release\CustomBA.dll"/> 
     <Payload SourceFile="..\CustomBA\bin\Release\GalaSoft.MvvmLight.WPF4.dll"/> 
     <Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.8\SDK\Microsoft.Deployment.WindowsInstaller.dll"/> 
    </BootstrapperApplicationRef> 
    <WixVariable Id="WixMbaPrereqLicenseUrl" Value=""/> 
    <WixVariable Id="WixMbaPrereqPackageId" Value=""/> 
    <Chain> 
     <MsiPackage SourceFile="..\KubeInstaller\bin\Release\KubeInstaller.msi" Id="KubeInstallationPackageId" Cache="yes" Visible="no"/> 
    </Chain> 

    </Bundle> 
</Wix> 

Ниже представлен продукт Product.wxs проекта установки.

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 

    <Product Id="70F65E5D-F307-4155-8847-9E5A66024DE7" Name="Installer" Language="1033" Version="1.0.0.0" Manufacturer="Zone24x7" UpgradeCode="E90569B5-372E-45BB-B101-58E0B75AB5C7"> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="x64"/> 

    <Property Id="JAVA_CURRENT_VERSION64"> 
     <RegistrySearch Id="JRE_CURRENT_VERSION_REGSEARCH64" Root="HKLM" Key="SOFTWARE\JavaSoft\Java Runtime Environment" Name="CurrentVersion" Type="raw" Win64="yes" /> 
    </Property> 

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

    <Feature Id="ProductFeature" Title="Installer" Level="1" > 
     <ComponentGroupRef Id="NewFilesGroup2"/> 
    </Feature> 
    </Product> 

    <Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
     <Directory Id="InstallDir" Name="Installer"> 
      <Directory Id="MyProgramDir2" Name="KKSDKService" /> 
     </Directory> 
     </Directory> 
    </Directory> 
    </Fragment> 


    <Fragment> 
     <DirectoryRef Id="MyProgramDir2" /> 
    </Fragment> 
    <Fragment> 
     <ComponentGroup Id="NewFilesGroup2"> 
      <Component Id="cmpB40D9BC07A10F4C7CA1D590EA22BC096" Directory="MyProgramDir2" Guid="6CEF1581-D3B4-43EC-A561-8E35CFD9AB67"> 
       <File Id="filCD18463F625BD1E6DABFF218E37514D9" KeyPath="yes" Source="$(var.MyDir2)\BarcodeScannerPlugin.jar" /> 
      </Component> 
      <Component Id="cmpCEA7123B4B5BD564DC3955797750BDBD" Directory="MyProgramDir2" Guid="0828F282-7F66-4550-9D8B-B9DD914F50BA"> 
       <File Id="fil1C3696A75F0BD878925FCA64111719CE" KeyPath="yes" Source="$(var.MyDir2)\KKSDK.jar" /> 
      </Component> 
      <Component Id="cmp754951538EA86C396458E93F7C5EE8D8" Directory="MyProgramDir2" Guid="83532EF6-0AE6-4B9C-824E-7309E4E97BFA"> 
       <File Id="fil9EEABE714F6AF741BE3D5AA5B5209994" KeyPath="yes" Source="$(var.MyDir2)\SDKTestPlugin.jar" /> 
      </Component> 
      <Component Id="cmp89BABCFC5524994A65C4664EA4FACE6C" Directory="MyProgramDir2" Guid="3C7A05CE-F786-4E23-80B4-2FCB9ABB314C"> 
       <File Id="fil65C3299403B5E2113A60782D09D56C54" KeyPath="yes" Source="$(var.MyDir2)\ProfileManagerPlugin.jar" /> 
      </Component> 
      <Component Id="cmpCB38C422B08F1CA1B1E85B1EA87CC1E6" Directory="MyProgramDir2" Guid="66766CBB-A4CD-46C9-94F5-79410A8981C2"> 
       <File Id="filC9B025CB143BD34F87C0041C5D550955" KeyPath="yes" Source="$(var.MyDir2)\RFIDScannerPlugin.jar" /> 
      </Component> 
      <Component Id="cmp0F9E9EA430641A0340428B2A9E45E672" Directory="MyProgramDir2" Guid="203631E3-581B-49C4-8D38-2B2D1CB9DDCD"> 
       <File Id="filCA701380AEB33971329784A6C3186684" KeyPath="yes" Source="$(var.MyDir2)\WebSocketServerPlugin.jar" /> 
      </Component> 
     </ComponentGroup> 
    </Fragment> 

</Wix> 

Ниже приведен класс, который обрабатывает действия, связанные с установщиком.

public class MainViewModel : ViewModelBase 
    { 
     //constructor 
     public MainViewModel(BootstrapperApplication bootstrapper) 
     { 

      this.IsThinking = false; 

      this.Bootstrapper = bootstrapper; 
      this.Bootstrapper.ApplyComplete += this.OnApplyComplete; 
      this.Bootstrapper.DetectPackageComplete += this.OnDetectPackageComplete; 
      this.Bootstrapper.PlanComplete += this.OnPlanComplete; 

      this.Bootstrapper.CacheAcquireProgress += (sender, args) => 
      { 
       this.cacheProgress = args.OverallPercentage; 
       this.Progress = (this.cacheProgress + this.executeProgress)/2; 
      }; 
      this.Bootstrapper.ExecuteProgress += (sender, args) => 
      { 
       this.executeProgress = args.OverallPercentage; 
       this.Progress = (this.cacheProgress + this.executeProgress)/2; 
      }; 
     } 

     #region Properties 

     private bool installEnabled; 
     public bool InstallEnabled 
     { 
      get { return installEnabled; } 
      set 
      { 
       installEnabled = value; 
       RaisePropertyChanged("InstallEnabled"); 
      } 
     } 

     private bool uninstallEnabled; 
     public bool UninstallEnabled 
     { 
      get { return uninstallEnabled; } 
      set 
      { 
       uninstallEnabled = value; 
       RaisePropertyChanged("UninstallEnabled"); 
      } 
     } 

     private bool isThinking; 
     public bool IsThinking 
     { 
      get { return isThinking; } 
      set 
      { 
       isThinking = value; 
       RaisePropertyChanged("IsThinking"); 
      } 
     } 

     private int progress; 
     public int Progress 
     { 
      get { return progress; } 
      set 
      { 
       this.progress = value; 
       RaisePropertyChanged("Progress"); 
      } 
     } 

     private int cacheProgress; 
     private int executeProgress; 

     public BootstrapperApplication Bootstrapper { get; private set; } 

     #endregion //Properties 

     #region Methods 

     public void InstallExecute() 
     { 
      IsThinking = true; 
      Bootstrapper.Engine.Plan(LaunchAction.Install); 
     } 

     public void UninstallExecute() 
     { 
      IsThinking = true; 
      Bootstrapper.Engine.Plan(LaunchAction.Uninstall); 
     } 

     public void ExitExecute() 
     { 
      CustomBA.BootstrapperDispatcher.InvokeShutdown(); 
     } 

     /// <summary> 
     /// Method that gets invoked when the Bootstrapper ApplyComplete event is fired. 
     /// This is called after a bundle installation has completed. Make sure we updated the view. 
     /// </summary> 
     private void OnApplyComplete(object sender, ApplyCompleteEventArgs e) 
     { 
      IsThinking = false; 
      InstallEnabled = false; 
      UninstallEnabled = false; 
      this.Progress = 100; 
      ExitExecute(); 
     } 

     /// <summary> 
     /// Method that gets invoked when the Bootstrapper DetectPackageComplete event is fired. 
     /// Checks the PackageId and sets the installation scenario. The PackageId is the ID 
     /// specified in one of the package elements (msipackage, exepackage, msppackage, 
     /// msupackage) in the WiX bundle. 
     /// </summary> 
     private void OnDetectPackageComplete(object sender, DetectPackageCompleteEventArgs e) 
     { 
      if (e.PackageId == "KubeInstallationPackageId") 
      { 
       if (e.State == PackageState.Absent) 
        InstallEnabled = true; 

       else if (e.State == PackageState.Present) 
        UninstallEnabled = true; 
      } 
     } 

     /// <summary> 
     /// Method that gets invoked when the Bootstrapper PlanComplete event is fired. 
     /// If the planning was successful, it instructs the Bootstrapper Engine to 
     /// install the packages. 
     /// </summary> 
     private void OnPlanComplete(object sender, PlanCompleteEventArgs e) 
     { 
      if (e.Status >= 0) 
       Bootstrapper.Engine.Apply(System.IntPtr.Zero); 
     } 

     #endregion //Methods 

     #region RelayCommands 

     private RelayCommand installCommand; 
     public RelayCommand InstallCommand 
     { 
      get 
      { 
       if (installCommand == null) 
        installCommand = new RelayCommand(() => InstallExecute(),() => InstallEnabled == true); 

       return installCommand; 
      } 
     } 

     private RelayCommand uninstallCommand; 
     public RelayCommand UninstallCommand 
     { 
      get 
      { 
       if (uninstallCommand == null) 
        uninstallCommand = new RelayCommand(() => UninstallExecute(),() => UninstallEnabled == true); 

       return uninstallCommand; 
      } 
     } 

     private RelayCommand exitCommand; 
     public RelayCommand ExitCommand 
     { 
      get 
      { 
       if (exitCommand == null) 
        exitCommand = new RelayCommand(() => ExitExecute()); 

       return exitCommand; 
      } 
     } 

     #endregion //RelayCommands 
    } 

Log File 1:

[0980:3888][2016-04-22T16:49:18]i001: Burn v3.10.2.2516, Windows v6.3 (Build 9600: Service Pack 0), path: C:\ProgramData\Package Cache\{71ae2d4e-5c00-442b-9ea1-00cec549800d}\KubePlatformSetup.exe 
[0980:3888][2016-04-22T16:49:18]i003: This bundle is being run by a related bundle as type 'Upgrade'. 
[0980:3888][2016-04-22T16:49:18]i009: Command Line: '-uninstall -quiet -burn.related.upgrade -burn.ancestors={f57e276b-2b99-4f55-9566-88f47c0a065c} -burn.embedded BurnPipe.{22EB703C-0051-46E7-8B68-BA209900F6F7} {B0B02376-A988-437A-92A4-6116CFBC5526} 13952' 
[0980:3888][2016-04-22T16:49:18]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164918.log' 
[0980:3888][2016-04-22T16:49:18]i000: Setting string variable 'WixBundleManufacturer' to value 'Zone24x7' 
[0980:3888][2016-04-22T16:49:18]i000: Loading managed bootstrapper application. 
[0980:3888][2016-04-22T16:49:18]i000: Creating BA thread to run asynchronously. 
[0980:37B4][2016-04-22T16:49:18]i000: Launching custom TestBA UX 
[0980:3888][2016-04-22T16:49:19]i100: Detect begin, 2 packages 
[0980:3888][2016-04-22T16:49:19]i102: Detected related bundle: {f57e276b-2b99-4f55-9566-88f47c0a065c}, type: Upgrade, scope: PerMachine, version: 1.0.1.0, operation: None 
[0980:3888][2016-04-22T16:49:19]i103: Detected related package: {8C442A83-F559-488C-8CC4-21B1626F4B8E}, scope: PerMachine, version: 1.0.1.0, language: 0 operation: Downgrade 
[0980:3888][2016-04-22T16:49:19]i103: Detected related package: {8201DD23-40A5-418B-B016-4D29BE6F010B}, scope: PerMachine, version: 1.0.1.0, language: 0 operation: Downgrade 
[0980:3888][2016-04-22T16:49:19]i101: Detected package: KubeUpdaterServiceInstallerId, state: Obsolete, cached: Complete 
[0980:3888][2016-04-22T16:49:19]i101: Detected package: MosquittoInstallerId, state: Obsolete, cached: Complete 
[0980:3888][2016-04-22T16:49:19]i199: Detect complete, result: 0x0 
[0980:3888][2016-04-22T16:51:43]i500: Shutting down, exit code: 0x0 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleAction = 3 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleElevated = 1 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleInstalled = 1 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleLastUsedSource = G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\ 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleLog = C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164918.log 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleManufacturer = Zone24x7 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleName = KubePlatformSetup 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleOriginalSource = G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\KubePlatformSetup.exe 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleOriginalSourceFolder = G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\ 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleProviderKey = {71ae2d4e-5c00-442b-9ea1-00cec549800d} 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleTag = 
[0980:3888][2016-04-22T16:51:43]i410: Variable: WixBundleVersion = 1.0.0.0 
[0980:3888][2016-04-22T16:51:43]i007: Exit code: 0x0, restarting: No 

Log File 2:

[3204:32B0][2016-04-22T16:48:38]i001: Burn v3.10.2.2516, Windows v6.3 (Build 9600: Service Pack 0), path: C:\Users\MACILA~1\AppData\Local\Temp\{E6470133-8EFE-49DE-8561-A335091D3464}\.cr\KubePlatformSetup.exe 
[3204:32B0][2016-04-22T16:48:38]i009: Command Line: '-burn.clean.room=G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\KubePlatformSetup.exe' 
[3204:32B0][2016-04-22T16:48:38]i000: Setting string variable 'WixBundleOriginalSource' to value 'G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\KubePlatformSetup.exe' 
[3204:32B0][2016-04-22T16:48:38]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\' 
[3204:32B0][2016-04-22T16:48:38]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838.log' 
[3204:32B0][2016-04-22T16:48:38]i000: Setting string variable 'WixBundleName' to value 'KubePlatformSetup' 
[3204:32B0][2016-04-22T16:48:38]i000: Setting string variable 'WixBundleManufacturer' to value 'Zone24x7' 
[3204:32B0][2016-04-22T16:48:38]i000: Loading managed bootstrapper application. 
[3204:32B0][2016-04-22T16:48:38]i000: Creating BA thread to run asynchronously. 
[3204:3A5C][2016-04-22T16:48:38]i000: Launching custom TestBA UX 
[3204:32B0][2016-04-22T16:48:39]i100: Detect begin, 2 packages 
[3204:32B0][2016-04-22T16:48:39]i102: Detected related bundle: {71ae2d4e-5c00-442b-9ea1-00cec549800d}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: MajorUpgrade 
[3204:32B0][2016-04-22T16:48:39]i103: Detected related package: {398C5992-4E70-4844-8063-48639892BACF}, scope: PerMachine, version: 1.0.0.0, language: 0 operation: MajorUpgrade 
[3204:32B0][2016-04-22T16:48:39]i103: Detected related package: {392D3E7F-6FCB-4EFD-A40F-B2F7C2CB6D44}, scope: PerMachine, version: 1.0.0.0, language: 0 operation: MajorUpgrade 
[3204:32B0][2016-04-22T16:48:39]i101: Detected package: KubeUpdaterServiceInstallerId, state: Absent, cached: None 
[3204:32B0][2016-04-22T16:48:39]i101: Detected package: MosquittoInstallerId, state: Absent, cached: None 
[3204:32B0][2016-04-22T16:48:39]i199: Detect complete, result: 0x0 
[3204:32B0][2016-04-22T16:48:40]i200: Plan begin, 2 packages, action: Install 
[3204:32B0][2016-04-22T16:48:40]i000: Setting string variable 'WixBundleRollbackLog_KubeUpdaterServiceInstallerId' to value 'C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838_000_KubeUpdaterServiceInstallerId_rollback.log' 
[3204:32B0][2016-04-22T16:48:40]i000: Setting string variable 'WixBundleLog_KubeUpdaterServiceInstallerId' to value 'C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838_000_KubeUpdaterServiceInstallerId.log' 
[3204:32B0][2016-04-22T16:48:40]i000: Setting string variable 'WixBundleRollbackLog_MosquittoInstallerId' to value 'C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838_001_MosquittoInstallerId_rollback.log' 
[3204:32B0][2016-04-22T16:48:40]i000: Setting string variable 'WixBundleLog_MosquittoInstallerId' to value 'C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838_001_MosquittoInstallerId.log' 
[3204:32B0][2016-04-22T16:48:40]i201: Planned package: KubeUpdaterServiceInstallerId, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register 
[3204:32B0][2016-04-22T16:48:40]i201: Planned package: MosquittoInstallerId, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register 
[3204:32B0][2016-04-22T16:48:40]i207: Planned related bundle: {71ae2d4e-5c00-442b-9ea1-00cec549800d}, type: Upgrade, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, dependency: None 
[3204:32B0][2016-04-22T16:48:40]i299: Plan complete, result: 0x0 
[3204:32B0][2016-04-22T16:48:40]i300: Apply begin 
[3204:32B0][2016-04-22T16:48:40]i010: Launching elevated engine process. 
[3204:32B0][2016-04-22T16:48:40]i011: Launched elevated engine process. 
[3204:32B0][2016-04-22T16:48:40]i012: Connected to elevated engine. 
[3680:38D0][2016-04-22T16:48:40]i358: Pausing automatic updates. 
[3680:38D0][2016-04-22T16:48:40]i359: Paused automatic updates. 
[3680:38D0][2016-04-22T16:48:40]i360: Creating a system restore point. 
[3680:38D0][2016-04-22T16:48:40]i361: Created a system restore point. 
[3680:38D0][2016-04-22T16:48:40]i370: Session begin, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{f57e276b-2b99-4f55-9566-88f47c0a065c}, options: 0x7, disable resume: No 
[3680:38D0][2016-04-22T16:48:40]i000: Caching bundle from: 'C:\Users\MACILA~1\AppData\Local\Temp\{89CCD5C8-EB48-4FB3-8FB5-32FC9EEAB83F}\.be\KubePlatformSetup.exe' to: 'C:\ProgramData\Package Cache\{f57e276b-2b99-4f55-9566-88f47c0a065c}\KubePlatformSetup.exe' 
[3680:38D0][2016-04-22T16:48:40]i320: Registering bundle dependency provider: {f57e276b-2b99-4f55-9566-88f47c0a065c}, version: 1.0.1.0 
[3680:38D0][2016-04-22T16:48:40]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{f57e276b-2b99-4f55-9566-88f47c0a065c}, resume: Active, restart initiated: No, disable resume: No 
[3204:2B40][2016-04-22T16:48:40]i336: Acquiring container: WixAttachedContainer, copy from: G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\KubePlatformSetup.exe 
[3204:2B40][2016-04-22T16:48:40]i000: Setting string variable 'WixBundleLastUsedSource' to value 'G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\' 
[3680:350C][2016-04-22T16:48:40]i305: Verified acquired payload: KubeUpdaterServiceInstallerId at path: C:\ProgramData\Package Cache\.unverified\KubeUpdaterServiceInstallerId, moving to: C:\ProgramData\Package Cache\{8C442A83-F559-488C-8CC4-21B1626F4B8E}v1.0.1.0\KubeUpdaterServiceInstaller.msi. 
[3680:350C][2016-04-22T16:48:40]i305: Verified acquired payload: cabDF68CF429512A78026D040F0FB13A50B at path: C:\ProgramData\Package Cache\.unverified\cabDF68CF429512A78026D040F0FB13A50B, moving to: C:\ProgramData\Package Cache\{8C442A83-F559-488C-8CC4-21B1626F4B8E}v1.0.1.0\cab1.cab. 
[3680:350C][2016-04-22T16:48:40]i305: Verified acquired payload: MosquittoInstallerId at path: C:\ProgramData\Package Cache\.unverified\MosquittoInstallerId, moving to: C:\ProgramData\Package Cache\{8201DD23-40A5-418B-B016-4D29BE6F010B}v1.0.1.0\MosquittoInstaller.msi. 
[3680:350C][2016-04-22T16:48:40]i305: Verified acquired payload: cab657E45B8C9A7EF24C9A74563C2FA6EB3 at path: C:\ProgramData\Package Cache\.unverified\cab657E45B8C9A7EF24C9A74563C2FA6EB3, moving to: C:\ProgramData\Package Cache\{8201DD23-40A5-418B-B016-4D29BE6F010B}v1.0.1.0\cab1.cab. 
[3680:38D0][2016-04-22T16:48:40]i323: Registering package dependency provider: {8C442A83-F559-488C-8CC4-21B1626F4B8E}, version: 1.0.1.0, package: KubeUpdaterServiceInstallerId 
[3680:38D0][2016-04-22T16:48:40]i301: Applying execute package: KubeUpdaterServiceInstallerId, action: Install, path: C:\ProgramData\Package Cache\{8C442A83-F559-488C-8CC4-21B1626F4B8E}v1.0.1.0\KubeUpdaterServiceInstaller.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" INSTALLLOCATION="G:\"' 
[3204:32B0][2016-04-22T16:49:17]i319: Applied execute package: KubeUpdaterServiceInstallerId, result: 0x0, restart: None 
[3680:38D0][2016-04-22T16:49:17]i325: Registering dependency: {f57e276b-2b99-4f55-9566-88f47c0a065c} on package provider: {8C442A83-F559-488C-8CC4-21B1626F4B8E}, package: KubeUpdaterServiceInstallerId 
[3680:38D0][2016-04-22T16:49:17]i323: Registering package dependency provider: {8201DD23-40A5-418B-B016-4D29BE6F010B}, version: 1.0.1.0, package: MosquittoInstallerId 
[3680:38D0][2016-04-22T16:49:17]i301: Applying execute package: MosquittoInstallerId, action: Install, path: C:\ProgramData\Package Cache\{8201DD23-40A5-418B-B016-4D29BE6F010B}v1.0.1.0\MosquittoInstaller.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" INSTALLLOCATION="G:\"' 
[3204:32B0][2016-04-22T16:49:18]i319: Applied execute package: MosquittoInstallerId, result: 0x0, restart: None 
[3680:38D0][2016-04-22T16:49:18]i325: Registering dependency: {f57e276b-2b99-4f55-9566-88f47c0a065c} on package provider: {8201DD23-40A5-418B-B016-4D29BE6F010B}, package: MosquittoInstallerId 
[3680:38D0][2016-04-22T16:49:18]i301: Applying execute package: {71ae2d4e-5c00-442b-9ea1-00cec549800d}, action: Uninstall, path: C:\ProgramData\Package Cache\{71ae2d4e-5c00-442b-9ea1-00cec549800d}\KubePlatformSetup.exe, arguments: '"C:\ProgramData\Package Cache\{71ae2d4e-5c00-442b-9ea1-00cec549800d}\KubePlatformSetup.exe" -uninstall -quiet -burn.related.upgrade -burn.ancestors={f57e276b-2b99-4f55-9566-88f47c0a065c}' 
[3204:32B0][2016-04-22T16:51:43]i319: Applied execute package: {71ae2d4e-5c00-442b-9ea1-00cec549800d}, result: 0x0, restart: None 
[3680:38D0][2016-04-22T16:51:43]i372: Session end, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{f57e276b-2b99-4f55-9566-88f47c0a065c}, resume: ARP, restart: None, disable resume: No 
[3680:38D0][2016-04-22T16:51:43]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{f57e276b-2b99-4f55-9566-88f47c0a065c}, resume: ARP, restart initiated: No, disable resume: No 
[3204:32B0][2016-04-22T16:51:43]i399: Apply complete, result: 0x0, restart: None, ba requested restart: No 
[3204:32B0][2016-04-22T16:51:43]i500: Shutting down, exit code: 0x0 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleAction = 5 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleElevated = 1 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleLastUsedSource = G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\ 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleLog = C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838.log 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleLog_KubeUpdaterServiceInstallerId = C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838_000_KubeUpdaterServiceInstallerId.log 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleLog_MosquittoInstallerId = C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838_001_MosquittoInstallerId.log 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleManufacturer = Zone24x7 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleName = KubePlatformSetup 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleOriginalSource = G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\KubePlatformSetup.exe 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleOriginalSourceFolder = G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\ 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleProviderKey = {f57e276b-2b99-4f55-9566-88f47c0a065c} 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleRollbackLog_KubeUpdaterServiceInstallerId = C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838_000_KubeUpdaterServiceInstallerId_rollback.log 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleRollbackLog_MosquittoInstallerId = C:\Users\MACILA~1\AppData\Local\Temp\KubePlatformSetup_20160422164838_001_MosquittoInstallerId_rollback.log 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleSourceProcessFolder = G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\ 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleSourceProcessPath = G:\Projects\Kube2\kube-installer\KubePlatformSetup\KubePlatformSetup\bin\Release\KubePlatformSetup.exe 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleTag = 
[3204:32B0][2016-04-22T16:51:43]i410: Variable: WixBundleVersion = 1.0.1.0 
[3204:32B0][2016-04-22T16:51:43]i007: Exit code: 0x0, restarting: No 
+0

Я вижу, что вы используете CustomBA.dll. Можете ли вы опубликовать часть планирования в журнале с момента обновления? Я предполагаю, что ваше приложение bootstrapper переопределяет план двигателя для связанного пакета от Absent до None или Present. Механизм использует метод интерфейса «OnPlanRelatedBundle (bundleID, * requeststate)», и если вы задаете запрашиваемое состояние PRESENT или NONE, вы оставите старый пакет, установленный после обновления. –

+0

Я отредактировал вопрос с классом, который вы просили :) Что-то странное там? – mayooran

+0

Мне нужно взглянуть на код C# BA завтра с тех пор, как я использовал все в C++. Код BA должен быть полезен, но я хочу, чтобы в большинстве случаев журнал регистрировался с% temp% обновления. Вы должны * видеть на фазе обнаружения «Определенный связанный пакет {GUID] ... Relation: MajorUpgrade» или что-то подобное, а в части планирования журнала вы должны увидеть «Связанный с планированием», а план состояния должен быть для него Отсутствует и удаляется. –

ответ

2

Я нашел решение в состоянии. Мне пришлось подключиться к методу DetectComplete и вызвать метод плана в Engine. Ниже, как я это сделал.

void DetectComplete(object sender, DetectCompleteEventArgs e) 
    { 
     Bootstrapper.Engine.Log(LogLevel.Verbose,"fired! but does that give you any clue?! idiot!"); 
     if (LaunchAction.Uninstall == Bootstrapper.Command.Action) 
     { 
      Bootstrapper.Engine.Log(LogLevel.Verbose, "Invoking automatic plan for uninstall"); 
      Bootstrapper.Engine.Plan(LaunchAction.Uninstall); 
     } 
    } 
+0

Дополнительная информация здесь https://frozencloud.wordpress.com/2016/05/06/burn-bootstrapper-installer-major-upgrade-doesnt-uninstal л-предыдущая-версия / – mayooran

2

Из журналов я вижу несколько вещей.

Что касается обновления, похоже, что он правильно обнаруживает все пакеты и правильно их планирует.

Два установочных пакета устанавливаются в качестве основного обновления, а соответствующий пакет (тот, который обновляется) обнаруживается и запускается для его деинсталляции.

Все проблемы возникают из-за удаления предыдущего пакета.

Журнал, обозначенный как «Файл журнала 1», на самом деле является журналом, когда ваше обновление повторно запустило установленный в данный момент загрузчик, чтобы удалить его. Проблема, как я вижу это прямо здесь:

[0980:3888][2016-04-22T16:49:19]i100: Detect begin, 2 packages 
[0980:3888][2016-04-22T16:49:19]i102: Detected related bundle: {f57e276b-2b99-4f55-9566-88f47c0a065c}, type: Upgrade, scope: PerMachine, version: 1.0.1.0, operation: None 
[0980:3888][2016-04-22T16:49:19]i103: Detected related package: {8C442A83-F559-488C-8CC4-21B1626F4B8E}, scope: PerMachine, version: 1.0.1.0, language: 0 operation: Downgrade 
[0980:3888][2016-04-22T16:49:19]i103: Detected related package: {8201DD23-40A5-418B-B016-4D29BE6F010B}, scope: PerMachine, version: 1.0.1.0, language: 0 operation: Downgrade 
[0980:3888][2016-04-22T16:49:19]i101: Detected package: KubeUpdaterServiceInstallerId, state: Obsolete, cached: Complete 
[0980:3888][2016-04-22T16:49:19]i101: Detected package: MosquittoInstallerId, state: Obsolete, cached: Complete 
[0980:3888][2016-04-22T16:49:19]i199: Detect complete, result: 0x0 
[0980:3888][2016-04-22T16:51:43]i500: Shutting down, exit code: 0x0 

Нужный процесс для всех сгореть bootstrappers является ли обнаружение фазы, фазы плана, прикладывают фазу.

По какой-то причине ваша деинсталляция при запуске связанного пакета просто прекращается после фазы обнаружения.

Я также подозреваю, что ваша машина может находиться в странном состоянии прямо сейчас. Я думаю, что у вас несколько установленных, но скрытых в списке удалить удалить программы, устанавливается для KubeUpdaterServiceInstaller и MosquittoInstaller.

Первое, что я хотел бы сделать, это stop установка чего-либо на вашей машине для сборки/разработки. Когда авторские установки установят вас , совершают ошибки и заставляют машины попасть в странные состояния в отношении того, что они знали и устанавливали на нем. Я бы предложил использовать виртуальную среду для всех ваших тестирования установщика. Когда вы что-то делаете, вы можете легко вернуться в чистое состояние и снова начать тестирование.Если вы используете виртуальную среду, просто игнорируйте этот абзац, вы делаете это правильно, но убедитесь, что вы очистили все до тестирования изменений и тестирования обновления.

В вашем MSI wix я предлагаю вам использовать «*» в качестве идентификатора продукта, поэтому вам не нужно менять его при каждой сборке.

<Product Id="*" Name="Installer" Language="1033" Version="1.0.0.0" Manufacturer="Zone24x7" UpgradeCode="E90569B5-372E-45BB-B101-58E0B75AB5C7"> 

и в вашем главный элемент обновления добавить AllowSameVersionUpgrades = «да»

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." AllowSameVersionUpgrades="yes" /> 

Так что вам не нужно обновлять версию каждый раз, когда вы хотите, чтобы проверить обновление только восстановить установщик MSI.

Для справки, вот мои журналы обновления Bootstrapper для приложения bootstrapper и журналы, когда он удаляет старую установку. Обратите внимание на некоторые отличия

The Upgrade Install

When it re-runs the old installation to remove it

Журнал обновления выглядит в основном так же, как ваш, который хорош, но повторно запустить, чтобы удалить журнал имеет некоторые отличия. Я не совсем уверен, не видя всю свою базу кода (и у меня нет времени или желания сделать это), как исправить эти проблемы, но, надеюсь, что-то в этом ответе поможет вам.

+0

Я попробовал в новой ВМ. Его остановки с фазой обнаружения в этой машине также. Есть идеи? im clueless :( – mayooran

+0

Попробуйте использовать идентификатор продукта = «*» в установщиках MSI. Я не думаю, что вы хотите, чтобы загрузчик обнаруживал установки как «Устаревшие» или «Операция: понижение». –

+0

хорошо пробовал это тоже :(вы видите какие-либо проблемы с кодом BA здесь? Все этапы были правильно адресованы правильно? – mayooran