Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. QtIFW: Maintenance.exe does not start (no uninstall, no update)
QtWS25 Last Chance

QtIFW: Maintenance.exe does not start (no uninstall, no update)

Scheduled Pinned Locked Moved Solved Installation and Deployment
13 Posts 2 Posters 2.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Schenk
    wrote on last edited by
    #1

    Hi,

    i installed my (offline-) application with local repository (set env-vars, installed database, call several batch-scripts etc.) and now i want to uninstall my application with the generated uninstaller. If i double-click the exe nothing appears.

    What i am doing wrong? I do not even know where to start to find the bug.

    My installer.js of my config.xml looks like this.

    // https://doc.qt.io/qtinstallerframework/noninteractive.html
    var isSilent = 0;
    
    function Controller(){	 	 
    	
    	if(installer.isInstaller()){
    		
    	
    		var silent = installer.value("silent");	
    		if(silent == 1 || silent=="true" && silent != null){
    			installer.autoRejectMessageBoxes;
    			gui.setSilent(true);
    			isSilent = 1;			
    		}		
    	}	
    	
    	if(installer.isUninstaller()){		
    		var silent = installer.value("silent");	
    		if(silent == 1 || silent=="true" && silent != null){			
    			installer.autoRejectMessageBoxes;		
    			gui.setSilent(true);
    			isSilent = 1;				
    		}		
    	}
    }
    
    
    
    Controller.prototype.IntroductionPageCallback = function()
    {
    	//installer.setValue("TargetDir", "");
    	if(isSilent == 1){
    		gui.clickButton(buttons.NextButton);
    	}
    	
    }
    
    Controller.prototype.TargetDirectoryPageCallback = function(){
    
    	
    	if(isSilent == 1){
    		var target = installer.value("target");		
    		if(target != null && target != ""){
    			var widget = gui.currentPageWidget();
    			if(widget != null){		
    				widget.TargetDirectoryLineEdit.setText(target);
    			}	
    		}		
    		gui.clickButton(buttons.NextButton);			
    	}	
    	
    }
    
    
    
    
    Controller.prototype.ComponentSelectionPageCallback = function(){
    
    	
    	if(installer.isInstaller()){
    		var widget = gui.currentPageWidget(); // get the current wizard page
    		if (widget != null) {
    			widget.selectAll();        					
    			widget.findChild("SelectAllComponentsButton").setEnabled(false);
    			widget.findChild("DeselectAllComponentsButton").setEnabled(false);
    			widget.findChild("SelectDefaultComponentsButton").setEnabled(false);
    			widget.findChild("ResetComponentsButton").setEnabled(false);			
    		}	
    	}
    	
    	if(isSilent == 1){
    		var widget = gui.currentPageWidget();
    		if(widget != null){
    			widget.selectAll();			
    		}
    		gui.clickButton(buttons.NextButton);
    	}
    }
    
    Controller.prototype.StartMenuDirectoryPageCallback = function(){	
    	if(isSilent == 1){
    		gui.clickButton(buttons.NextButton);
    	}
    }
    
    Controller.prototype.LicenseAgreementPageCallback = function(){	
    	if(isSilent == 1){
    		var widget = gui.currentPageWidget();	
    		if(widget != null){
    			widget.AcceptLicenseRadioButton.setChecked(true);				
    		}		
    		gui.clickButton(buttons.NextButton);
    	}	
    }
    
    Controller.prototype.ReadyForInstallationPageCallback = function(){
    	if(isSilent == 1){
    		gui.clickButton(buttons.NextButton);
    	}	
    }
    
    Controller.prototype.PerformInstallationPageCallback = function(){	
    	if(isSilent == 1){
    		gui.clickButton(buttons.NextButton);
    	};	
    }
    
    Controller.prototype.FinishedPageCallback = function(){	
    	
    	if(installer.isInstaller()){
    		installer.gainAdminRights();
    		var dir = installer.value("TargetDir");
    		if(installer.fileExists(dir +"/tmp") == true){			
    			installer.performOperation("Delete", "@TargetDir@/tmp");						
    		}	
    		installer.dropAdminRights();
    	}	
    	
    	if(isSilent == 1){
    		gui.clickButton(buttons.FinishButton);		
    	}		
    }
    

    Thank you for your help in advance.
    bets regards

    RatzzR 2 Replies Last reply
    0
    • S Schenk

      Hi,

      i installed my (offline-) application with local repository (set env-vars, installed database, call several batch-scripts etc.) and now i want to uninstall my application with the generated uninstaller. If i double-click the exe nothing appears.

      What i am doing wrong? I do not even know where to start to find the bug.

      My installer.js of my config.xml looks like this.

      // https://doc.qt.io/qtinstallerframework/noninteractive.html
      var isSilent = 0;
      
      function Controller(){	 	 
      	
      	if(installer.isInstaller()){
      		
      	
      		var silent = installer.value("silent");	
      		if(silent == 1 || silent=="true" && silent != null){
      			installer.autoRejectMessageBoxes;
      			gui.setSilent(true);
      			isSilent = 1;			
      		}		
      	}	
      	
      	if(installer.isUninstaller()){		
      		var silent = installer.value("silent");	
      		if(silent == 1 || silent=="true" && silent != null){			
      			installer.autoRejectMessageBoxes;		
      			gui.setSilent(true);
      			isSilent = 1;				
      		}		
      	}
      }
      
      
      
      Controller.prototype.IntroductionPageCallback = function()
      {
      	//installer.setValue("TargetDir", "");
      	if(isSilent == 1){
      		gui.clickButton(buttons.NextButton);
      	}
      	
      }
      
      Controller.prototype.TargetDirectoryPageCallback = function(){
      
      	
      	if(isSilent == 1){
      		var target = installer.value("target");		
      		if(target != null && target != ""){
      			var widget = gui.currentPageWidget();
      			if(widget != null){		
      				widget.TargetDirectoryLineEdit.setText(target);
      			}	
      		}		
      		gui.clickButton(buttons.NextButton);			
      	}	
      	
      }
      
      
      
      
      Controller.prototype.ComponentSelectionPageCallback = function(){
      
      	
      	if(installer.isInstaller()){
      		var widget = gui.currentPageWidget(); // get the current wizard page
      		if (widget != null) {
      			widget.selectAll();        					
      			widget.findChild("SelectAllComponentsButton").setEnabled(false);
      			widget.findChild("DeselectAllComponentsButton").setEnabled(false);
      			widget.findChild("SelectDefaultComponentsButton").setEnabled(false);
      			widget.findChild("ResetComponentsButton").setEnabled(false);			
      		}	
      	}
      	
      	if(isSilent == 1){
      		var widget = gui.currentPageWidget();
      		if(widget != null){
      			widget.selectAll();			
      		}
      		gui.clickButton(buttons.NextButton);
      	}
      }
      
      Controller.prototype.StartMenuDirectoryPageCallback = function(){	
      	if(isSilent == 1){
      		gui.clickButton(buttons.NextButton);
      	}
      }
      
      Controller.prototype.LicenseAgreementPageCallback = function(){	
      	if(isSilent == 1){
      		var widget = gui.currentPageWidget();	
      		if(widget != null){
      			widget.AcceptLicenseRadioButton.setChecked(true);				
      		}		
      		gui.clickButton(buttons.NextButton);
      	}	
      }
      
      Controller.prototype.ReadyForInstallationPageCallback = function(){
      	if(isSilent == 1){
      		gui.clickButton(buttons.NextButton);
      	}	
      }
      
      Controller.prototype.PerformInstallationPageCallback = function(){	
      	if(isSilent == 1){
      		gui.clickButton(buttons.NextButton);
      	};	
      }
      
      Controller.prototype.FinishedPageCallback = function(){	
      	
      	if(installer.isInstaller()){
      		installer.gainAdminRights();
      		var dir = installer.value("TargetDir");
      		if(installer.fileExists(dir +"/tmp") == true){			
      			installer.performOperation("Delete", "@TargetDir@/tmp");						
      		}	
      		installer.dropAdminRights();
      	}	
      	
      	if(isSilent == 1){
      		gui.clickButton(buttons.FinishButton);		
      	}		
      }
      

      Thank you for your help in advance.
      bets regards

      RatzzR Offline
      RatzzR Offline
      Ratzz
      wrote on last edited by
      #2

      @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

      If i double-click the exe nothing appears.

      Does it uninstall silently ??

      --Alles ist gut.

      1 Reply Last reply
      0
      • S Offline
        S Offline
        Schenk
        wrote on last edited by
        #3

        No, the directory still exists and there is no process in taskmanager.

        1 Reply Last reply
        0
        • S Schenk

          Hi,

          i installed my (offline-) application with local repository (set env-vars, installed database, call several batch-scripts etc.) and now i want to uninstall my application with the generated uninstaller. If i double-click the exe nothing appears.

          What i am doing wrong? I do not even know where to start to find the bug.

          My installer.js of my config.xml looks like this.

          // https://doc.qt.io/qtinstallerframework/noninteractive.html
          var isSilent = 0;
          
          function Controller(){	 	 
          	
          	if(installer.isInstaller()){
          		
          	
          		var silent = installer.value("silent");	
          		if(silent == 1 || silent=="true" && silent != null){
          			installer.autoRejectMessageBoxes;
          			gui.setSilent(true);
          			isSilent = 1;			
          		}		
          	}	
          	
          	if(installer.isUninstaller()){		
          		var silent = installer.value("silent");	
          		if(silent == 1 || silent=="true" && silent != null){			
          			installer.autoRejectMessageBoxes;		
          			gui.setSilent(true);
          			isSilent = 1;				
          		}		
          	}
          }
          
          
          
          Controller.prototype.IntroductionPageCallback = function()
          {
          	//installer.setValue("TargetDir", "");
          	if(isSilent == 1){
          		gui.clickButton(buttons.NextButton);
          	}
          	
          }
          
          Controller.prototype.TargetDirectoryPageCallback = function(){
          
          	
          	if(isSilent == 1){
          		var target = installer.value("target");		
          		if(target != null && target != ""){
          			var widget = gui.currentPageWidget();
          			if(widget != null){		
          				widget.TargetDirectoryLineEdit.setText(target);
          			}	
          		}		
          		gui.clickButton(buttons.NextButton);			
          	}	
          	
          }
          
          
          
          
          Controller.prototype.ComponentSelectionPageCallback = function(){
          
          	
          	if(installer.isInstaller()){
          		var widget = gui.currentPageWidget(); // get the current wizard page
          		if (widget != null) {
          			widget.selectAll();        					
          			widget.findChild("SelectAllComponentsButton").setEnabled(false);
          			widget.findChild("DeselectAllComponentsButton").setEnabled(false);
          			widget.findChild("SelectDefaultComponentsButton").setEnabled(false);
          			widget.findChild("ResetComponentsButton").setEnabled(false);			
          		}	
          	}
          	
          	if(isSilent == 1){
          		var widget = gui.currentPageWidget();
          		if(widget != null){
          			widget.selectAll();			
          		}
          		gui.clickButton(buttons.NextButton);
          	}
          }
          
          Controller.prototype.StartMenuDirectoryPageCallback = function(){	
          	if(isSilent == 1){
          		gui.clickButton(buttons.NextButton);
          	}
          }
          
          Controller.prototype.LicenseAgreementPageCallback = function(){	
          	if(isSilent == 1){
          		var widget = gui.currentPageWidget();	
          		if(widget != null){
          			widget.AcceptLicenseRadioButton.setChecked(true);				
          		}		
          		gui.clickButton(buttons.NextButton);
          	}	
          }
          
          Controller.prototype.ReadyForInstallationPageCallback = function(){
          	if(isSilent == 1){
          		gui.clickButton(buttons.NextButton);
          	}	
          }
          
          Controller.prototype.PerformInstallationPageCallback = function(){	
          	if(isSilent == 1){
          		gui.clickButton(buttons.NextButton);
          	};	
          }
          
          Controller.prototype.FinishedPageCallback = function(){	
          	
          	if(installer.isInstaller()){
          		installer.gainAdminRights();
          		var dir = installer.value("TargetDir");
          		if(installer.fileExists(dir +"/tmp") == true){			
          			installer.performOperation("Delete", "@TargetDir@/tmp");						
          		}	
          		installer.dropAdminRights();
          	}	
          	
          	if(isSilent == 1){
          		gui.clickButton(buttons.FinishButton);		
          	}		
          }
          

          Thank you for your help in advance.
          bets regards

          RatzzR Offline
          RatzzR Offline
          Ratzz
          wrote on last edited by
          #4

          @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

          if(installer.isUninstaller()){
          var silent = installer.value("silent");
          if(silent == 1 || silent=="true" && silent != null){
          installer.autoRejectMessageBoxes;
          gui.setSilent(true);
          isSilent = 1;
          }

          Is it required???

          --Alles ist gut.

          1 Reply Last reply
          0
          • S Offline
            S Offline
            Schenk
            wrote on last edited by Schenk
            #5

            To be honest, I do not know. :/ I will test it.
            Normaly, the if condition is not called in the uninstaller Routine....

            RatzzR 1 Reply Last reply
            0
            • S Schenk

              To be honest, I do not know. :/ I will test it.
              Normaly, the if condition is not called in the uninstaller Routine....

              RatzzR Offline
              RatzzR Offline
              Ratzz
              wrote on last edited by
              #6

              @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

              I do not know.

              Can you keep only required code and test them ?

              --Alles ist gut.

              1 Reply Last reply
              0
              • S Offline
                S Offline
                Schenk
                wrote on last edited by
                #7

                I tested it with

                function Controller(){	 	 
                	
                	/* if(installer.isInstaller()){
                		
                	
                		var silent = installer.value("silent");	
                		if(silent == 1 || silent=="true" && silent != null){
                			installer.autoRejectMessageBoxes;
                			gui.setSilent(true);
                			isSilent = 1;			
                		}		
                	}	
                	
                	if(installer.isUninstaller()){		
                		var silent = installer.value("silent");	
                		if(silent == 1 || silent=="true" && silent != null){			
                			installer.autoRejectMessageBoxes;		
                			gui.setSilent(true);
                			isSilent = 1;				
                		}		
                	} */
                }
                

                and with

                function Controller(){	 	 
                	
                	/* if(installer.isInstaller()){
                		
                	
                		var silent = installer.value("silent");	
                		if(silent == 1 || silent=="true" && silent != null){
                			installer.autoRejectMessageBoxes;
                			gui.setSilent(true);
                			isSilent = 1;			
                		}		
                	}	
                	*/
                
                	if(installer.isUninstaller()){		
                		var silent = installer.value("silent");	
                		if(silent == 1 || silent=="true" && silent != null){			
                			installer.autoRejectMessageBoxes;		
                			gui.setSilent(true);
                			isSilent = 1;				
                		}		
                	} 
                }
                

                Even if i stop all processes which have access to the files in the installation folder, it will not work.
                The uninstaller-process does not start. Even if i call it with or without admin rights from explorer; or from an admin console with

                uninstaller.exe silent=1
                uninstaller.exe silent==1
                uninstaller.exe "silent=1"
                uninstaller.exe silent=true
                uninstaller.exe silent="true"
                uninstaller.exe "silent=true"
                

                there is no success and no process in the task manager.
                How can i delete the installation manually? I can delete the files manually, but the appliacation still exists in the windows Program & Features table.

                RatzzR 1 Reply Last reply
                0
                • S Schenk

                  I tested it with

                  function Controller(){	 	 
                  	
                  	/* if(installer.isInstaller()){
                  		
                  	
                  		var silent = installer.value("silent");	
                  		if(silent == 1 || silent=="true" && silent != null){
                  			installer.autoRejectMessageBoxes;
                  			gui.setSilent(true);
                  			isSilent = 1;			
                  		}		
                  	}	
                  	
                  	if(installer.isUninstaller()){		
                  		var silent = installer.value("silent");	
                  		if(silent == 1 || silent=="true" && silent != null){			
                  			installer.autoRejectMessageBoxes;		
                  			gui.setSilent(true);
                  			isSilent = 1;				
                  		}		
                  	} */
                  }
                  

                  and with

                  function Controller(){	 	 
                  	
                  	/* if(installer.isInstaller()){
                  		
                  	
                  		var silent = installer.value("silent");	
                  		if(silent == 1 || silent=="true" && silent != null){
                  			installer.autoRejectMessageBoxes;
                  			gui.setSilent(true);
                  			isSilent = 1;			
                  		}		
                  	}	
                  	*/
                  
                  	if(installer.isUninstaller()){		
                  		var silent = installer.value("silent");	
                  		if(silent == 1 || silent=="true" && silent != null){			
                  			installer.autoRejectMessageBoxes;		
                  			gui.setSilent(true);
                  			isSilent = 1;				
                  		}		
                  	} 
                  }
                  

                  Even if i stop all processes which have access to the files in the installation folder, it will not work.
                  The uninstaller-process does not start. Even if i call it with or without admin rights from explorer; or from an admin console with

                  uninstaller.exe silent=1
                  uninstaller.exe silent==1
                  uninstaller.exe "silent=1"
                  uninstaller.exe silent=true
                  uninstaller.exe silent="true"
                  uninstaller.exe "silent=true"
                  

                  there is no success and no process in the task manager.
                  How can i delete the installation manually? I can delete the files manually, but the appliacation still exists in the windows Program & Features table.

                  RatzzR Offline
                  RatzzR Offline
                  Ratzz
                  wrote on last edited by
                  #8

                  @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                  How can i delete the installation manually?

                  There is an MaintenanceTool.exe which uninstalls for you.

                  @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                  I tested it with

                  Can you just try with this minimum steps required to create an installer and check?

                  --Alles ist gut.

                  S 1 Reply Last reply
                  2
                  • RatzzR Ratzz

                    @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                    How can i delete the installation manually?

                    There is an MaintenanceTool.exe which uninstalls for you.

                    @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                    I tested it with

                    Can you just try with this minimum steps required to create an installer and check?

                    S Offline
                    S Offline
                    Schenk
                    wrote on last edited by
                    #9

                    @Ratzz The maintanance.exe does not work. This is why i created this thread. But i found the problem, but not really a solution to fix it.
                    The uninstaller.exe /maintenance.exe contained a ".". After renaming the .dat., .exe and ini-files, it can be used to uninstall the application, but no update and no separate items.

                    RatzzR 1 Reply Last reply
                    0
                    • S Schenk

                      @Ratzz The maintanance.exe does not work. This is why i created this thread. But i found the problem, but not really a solution to fix it.
                      The uninstaller.exe /maintenance.exe contained a ".". After renaming the .dat., .exe and ini-files, it can be used to uninstall the application, but no update and no separate items.

                      RatzzR Offline
                      RatzzR Offline
                      Ratzz
                      wrote on last edited by
                      #10

                      @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                      After renaming the .dat., .exe and ini-files

                      Renaming may be bad idea.

                      @Ratzz said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                      Can you just try with this minimum steps required to create an installer and check?

                      can you please make a sample instead of messing up all together ?http://doc.qt.io/qtinstallerframework/ifw-tutorial.html

                      --Alles ist gut.

                      S 1 Reply Last reply
                      0
                      • RatzzR Ratzz

                        @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                        After renaming the .dat., .exe and ini-files

                        Renaming may be bad idea.

                        @Ratzz said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                        Can you just try with this minimum steps required to create an installer and check?

                        can you please make a sample instead of messing up all together ?http://doc.qt.io/qtinstallerframework/ifw-tutorial.html

                        S Offline
                        S Offline
                        Schenk
                        wrote on last edited by
                        #11

                        @Ratzz Hi Ratzz,

                        everthing is good ;)

                        @Ratzz said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                        @Ratzz said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                        Can you just try with this minimum steps required to create an installer and check?

                        can you please make a sample instead of messing up all together ?http://doc.qt.io/qtinstallerframework/ifw-tutorial.html

                        I did the minium sample and it works fine. So i analysed it to find my fault.

                        @Ratzz said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                        @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                        After renaming the .dat., .exe and ini-files

                        Renaming may be bad idea.

                        My config file contained the following line and the generated uninstaller.exe (MyApp2.0_Maintenance.exe) it will not work, because of the dot (" . ") in the description.

                        [...]
                        <MaintenanceToolName>MyApp2.0_Maintenance</MaintenanceToolName>	
                        [...]
                        

                        I had to rename the files, so that i am able to delete the existing installation and provide a new, functional version of my installer.

                        RatzzR 1 Reply Last reply
                        0
                        • S Schenk

                          @Ratzz Hi Ratzz,

                          everthing is good ;)

                          @Ratzz said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                          @Ratzz said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                          Can you just try with this minimum steps required to create an installer and check?

                          can you please make a sample instead of messing up all together ?http://doc.qt.io/qtinstallerframework/ifw-tutorial.html

                          I did the minium sample and it works fine. So i analysed it to find my fault.

                          @Ratzz said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                          @Schenk said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                          After renaming the .dat., .exe and ini-files

                          Renaming may be bad idea.

                          My config file contained the following line and the generated uninstaller.exe (MyApp2.0_Maintenance.exe) it will not work, because of the dot (" . ") in the description.

                          [...]
                          <MaintenanceToolName>MyApp2.0_Maintenance</MaintenanceToolName>	
                          [...]
                          

                          I had to rename the files, so that i am able to delete the existing installation and provide a new, functional version of my installer.

                          RatzzR Offline
                          RatzzR Offline
                          Ratzz
                          wrote on last edited by
                          #12

                          @Schenk
                          So is the thread solved?

                          --Alles ist gut.

                          S 1 Reply Last reply
                          0
                          • RatzzR Ratzz

                            @Schenk
                            So is the thread solved?

                            S Offline
                            S Offline
                            Schenk
                            wrote on last edited by
                            #13

                            @Ratzz said in QtIFW: Maintenance.exe does not start (no uninstall, no update):

                            @Schenk
                            So is the thread solved?

                            YES!

                            1 Reply Last reply
                            0

                            • Login

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • Users
                            • Groups
                            • Search
                            • Get Qt Extensions
                            • Unsolved