[wix-users] Custom action fails to create (& start) eclipse mosquitto broker service during Upgrade but works well on initial install and uninstall of the parent application

Om Sharma Om.Sharma at domino-uk.com
Tue May 14 09:29:23 PDT 2024


Hi,

 Following is the code segment that I have for wix 4 installer

<!-- The parent application. windows 10 desktop x64 -->
Product.wsx :
<!-- the parent (main) product that wiil be installed -->
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
     xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"
     xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
       <?define SourceFolder="$(var.SolutionDir)bin"?>
   <Package  --- >
        <ComponentGroup Directory="INSTALLFOLDER" Id="UniqueId">
                 <Component Id="CompId1" Guid="uniqueGuid">
                   <File Id="IdFile1" Source="$(var.SourceFolder)\file1" KeyPath="yes" Checksum="yes" />
             </Component>
                   <Component Id="CompId2" Guid="uniqueGuid">
                   <File Id="IdFile1" Source="$(var.SourceFolder)\file2" KeyPath="yes" Checksum="yes" />
             </Component>
                       :
        </ComponentGroup>
            
            <Feature Id="FeatureuniqueId" Title="the title" Level="1" AllowAdvertise="no" AllowAbsent="no">
                  <ComponentGroupRef Id="CompId1" />
                  <!-- include the eclipse mosquitto as a separate feature defined in EclipseMosquitto.wsx-->
                  <FeatureRef Id = "EclipseMosquittoFeature" />
                  <ComponentGroupRef Id="CompId2" />
                     :
            </Feature>
             :
             :                
      </Package>
</Wix>

----------------------

<!-- Optional install of eclipse mosquitto broker files-->
EclipseMosquitto.wsx :
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
  <Fragment>
   :
 <Property Id="SCEXEFILE">
      <DirectorySearch Id="FolderPathForScFile" Path="[System64Folder]">
            <FileSearch Name="sc.exe" />
      </DirectorySearch>
 </Property>

 <CustomAction Id="StartMosquitto"
      Execute="immediate"
      Impersonate="no"
      Property="SCEXEFILE"
    ExeCommand="start mosquitto" />

<CustomAction Id="StopMosquitto"
      Execute="immediate"
      Impersonate="no"
      Property="SCEXEFILE"
    ExeCommand="stop mosquitto" />

<CustomAction Id="InstallMosquitto"
      Execute="immediate"
      Impersonate="no"
      FileRef="mosquitto_exe"
    ExeCommand="install" />

<CustomAction Id="UnInstallMosquitto"
      Execute="immediate"
      Impersonate="no"
      FileRef="mosquitto_exe"
    ExeCommand="uninstall" />
      
 <InstallExecuteSequence>
        <Custom Action="InstallMosquitto" After="StartServices" Condition="(INSTALLECLIPSEMOSQUITTO=1) AND (NOT Installed)" />
        <Custom Action="StartMosquitto" After="StartServices" Condition="(INSTALLECLIPSEMOSQUITTO=1) AND (NOT Installed)" />
 </InstallExecuteSequence>

 <InstallExecuteSequence>
        <Custom Action="StopMosquitto" Before="InstallInitialize" Condition="(INSTALLECLIPSEMOSQUITTO=1) AND (Installed) AND (REMOVE~="ALL")" />
        <Custom Action="UnInstallMosquitto" Before="InstallInitialize" Condition="(INSTALLECLIPSEMOSQUITTO=1) AND (Installed) AND (REMOVE~="ALL")" />
 </InstallExecuteSequence>


  <ComponentGroup Directory="INSTALLFOLDER" Id="EclipseMosquittoGrp">
      :
        <Component Id="mosquitto_exe" Guid="DF631CDC-7EC5-4E8F-958B-AD2BE078251F" >
              <File Id="mosquitto_exe" Source="$(var.mosquittoResources)\mosquitto.exe" KeyPath="yes" Checksum="yes" />
      </Component>
        :
        :   
   </ComponentGroup>
     :
       :
       <!-- Include eclipse mosquitto files defined in this feature only when user has ticked the checkbox -->
       <Feature Id="EclipseMosquittoFeature" Title="Eclipse Mosquitto Broker" Level="0" AllowAdvertise="no" AllowAbsent="no">
           <ComponentGroupRef Id="EclipseMosquittoGrp" />
           <Level Condition="(INSTALLECLIPSEMOSQUITTO=1)" Value="1"/>
     </Feature>
  </Fragment>
</Wix>      
-------------------------------



Notes  :
======
  1) Running on windows 10 :  x64
  2) INSTALLECLIPSEMOSQUITTO property is set to 1 if the user ticks the checkbox in the UI
  3) On install eclipse mosquitto service gets created & started. Also the application installed correctly
  4) On uninstall mosquitto service get stopped and service deleted and the application uninstall correctly

Problem :
========
  To test the major upgrade
  I increement the version number in the Package element in product.wsx and in the Bundle element in Bundle.wsx

  The upgrade fails at StartMosquitto Custom Action
  If I test this with Commented line
     <Custom Action="StartMosquitto" ..../>
      in the InstallExecuteSequence the upgrade is successful
      
  This ment Action="InstallMosquitto" is failing.
  So after the successful upgrade I manually ran the following command
    mosquitto.exe install
  to install the mosquitto service and then
    sc start mosquitto
  to start the mosquitto service
  and all works good

  Any idea why is the InstallMosquitto and the StartMosquitto acions failing
  how to should I configure the custom action properly?


Thanks

Om
This Email and any files transmitted with it are intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any reading, redistribution, disclosure or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender immediately and delete the material from your computer. E-mail may be susceptible to data corruption, interception, viruses and unauthorised amendment and Domino UK Limited<http://www.domino-printing.com/Channels/UK/eng/Home.aspx> does not accept liability for any such corruption, interception, viruses or amendment or their consequences.

Domino UK Limited<http://www.domino-printing.com/Channels/UK/eng/Home.aspx> Registered in England. Registered Number:1750201. Registered Office Address: Trafalgar Way, Bar Hill, Cambridge, CB23 8TU.


More information about the wix-users mailing list