[wix-users] Install Util, Custom Actions, Elevated etc

Charles Gallo [9Dots Management] CGallo at ixdots.com
Tue Aug 1 04:21:47 PDT 2017


So, one question (probably) before I go back in my hole.

I ASSUME that InstallUtil.exe calls the class subclassed from  Installer (Install/Uninstall Rollback etc)

does it do anything else?  

If so, looking at what that class is doing in the app (just some registry entries), changing my WiX file to do it directly is going to be fairly trivial.  If not, more research needed

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Hoover, Jacob
Sent: Monday, July 31, 2017 12:37 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Install Util, Custom Actions, Elevated etc

This very old post may help, https://blogs.msdn.microsoft.com/josealmeida/2004/11/08/wix-managed-custom-actions/

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Edwin Castro
Sent: Monday, July 31, 2017 11:31 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Install Util, Custom Actions, Elevated etc

Found this in the archive but it won't help you call installutil inside the transaction. It does confirm that you'll need to run installutil after InstallFinalize with all its pitfalls unless you can find a way to do what installutil is doing directly in wix/msi.

http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/GAC-and-call-Custom-Action-td693254.html

--
Edwin G. Castro



On Mon, Jul 31, 2017 at 9:14 AM, Charles Gallo [9Dots Management] < CGallo at ixdots.com> wrote:

> Yes, they are in the GAC (the ones that the DLL are referencing)
>
> Unfortunately, the DLL is a bit of a black box to ME.  Took over the 
> project 5 years after everyone else left
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On 
> Behalf Of Edwin Castro
> Sent: Monday, July 31, 2017 12:12 PM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Subject: Re: [wix-users] Install Util, Custom Actions, Elevated etc
>
> Are the assemblies in question in the GAC? If so, then there is an 
> ordering issue that I can't remember the details for off the top of my 
> head. I'll see if I can do some research on that to get you something 
> more concrete but I probably won't be able to get to it until much 
> later in the day (possibly not until tonight). That might be the 
> reason that InstallShield scheduled the installutil custom action after InstallFinalize.
>
> An alternative, would be to figure out what the DLL is doing and 
> perform those actions directly in the MSI rather than calling the DLL.
> I'm assuming the installutil is probably just registering COM which 
> you should be able to author directly in the MSI... Generally, 
> speaking black boxes like installutil are not best practice when it comes to setup.
>
> --
> Edwin G. Castro
>
>
> On Mon, Jul 31, 2017 at 8:58 AM, Charles Gallo [9Dots Management] < 
> CGallo at ixdots.com> wrote:
>
> > It is set deferred
> >
> >         <CustomAction Id="InstallUtil_proCubeExcel" Execute="deferred"
> > Property="INSTALLUTIL_PATH"  ExeCommand=""[dir_ 
> > procube_bin][ADDIN_FILE_NAME]" /ShowCallStack "/>
> >
> >
> > The full sequence list from <InstallIntialize>
> >
> >
> >         <InstallInitialize Sequence="1500" />
> >
> >         <Custom Action="SetExcelName"
> > Sequence="1513">(&Excel2016=3)
> > OR (!Excel2016=3)</Custom>
> >         <Custom Action="SetExcel_2013Name"
> > Sequence="1515">(&Excel2013=3)
> > OR (!Excel2013=3)</Custom>
> >         <Custom Action="SetExcel32_2010Name"
> > Sequence="1516">(&Excel2010=3)
> > OR (!Excel2010=3)</Custom>
> >
> >         <Custom Action="SetInstallUtil" Sequence="1519" />
> >         <Custom Action="UnInstallUtil_proCubeExcel"
> > Sequence="1525">(MaintenanceMode
> > ="Remove") OR (REMOVE~="ALL")</Custom>
> >
> >         <AllocateRegistrySpace Sequence="1550">NOT Installed</
> > AllocateRegistrySpace>
> >         <ProcessComponents Sequence="1600" />
> >         <UnpublishComponents Sequence="1700" />
> >         <MsiUnpublishAssemblies Sequence="1750" />
> >
> >         <UnpublishFeatures Sequence="1800" />
> >         <StopServices Sequence="1900">VersionNT</StopServices>
> >         <DeleteServices Sequence="2000">VersionNT</DeleteServices>
> >         <UnregisterComPlus Sequence="2100" />
> >         <SelfUnregModules Sequence="2200" />
> >         <UnregisterTypeLibraries Sequence="2300" />
> >         <RemoveODBC Sequence="2400" />
> >         <UnregisterFonts Sequence="2500" />
> >         <RemoveRegistryValues Sequence="2600" />
> >         <UnregisterClassInfo Sequence="2700" />
> >         <UnregisterExtensionInfo Sequence="2800" />
> >         <UnregisterProgIdInfo Sequence="2900" />
> >         <UnregisterMIMEInfo Sequence="3000" />
> >         <RemoveIniValues Sequence="3100" />
> >         <RemoveShortcuts Sequence="3200" />
> >         <RemoveEnvironmentStrings Sequence="3300" />
> >         <RemoveDuplicateFiles Sequence="3400" />
> >         <RemoveFiles Sequence="3500" />
> >         <RemoveFolders Sequence="3600" />
> >         <CreateFolders Sequence="3700" />
> >         <MoveFiles Sequence="3800" />
> >         <InstallFiles Sequence="4000" />
> >         <DuplicateFiles Sequence="4210" />
> >         <PatchFiles Sequence="4090" />
> >         <BindImage Sequence="4300" />
> >         <CreateShortcuts Sequence="4500" />
> >         <RegisterClassInfo Sequence="4600" />
> >         <RegisterExtensionInfo Sequence="4700" />
> >         <RegisterProgIdInfo Sequence="4800" />
> >         <RegisterMIMEInfo Sequence="4900" />
> >         <WriteRegistryValues Sequence="5000" />
> >         <WriteIniValues Sequence="5100" />
> >         <WriteEnvironmentStrings Sequence="5200" />
> >         <RegisterFonts Sequence="5300" />
> >         <InstallODBC Sequence="5400" />
> >         <RegisterTypeLibraries Sequence="5500" />
> >         <SelfRegModules Sequence="5600" />
> >         <RegisterComPlus Sequence="5700" />
> >         <InstallServices Sequence="5800">VersionNT</InstallServices>
> >         <StartServices Sequence="5900">VersionNT</StartServices>
> >         <RegisterUser Sequence="6000" />
> >         <RegisterProduct Sequence="6100" />
> >         <PublishComponents Sequence="6200" />
> >         <MsiPublishAssemblies Sequence="6250" />
> >
> >         <PublishFeatures Sequence="6300" />
> >         <PublishProduct Sequence="6400" />
> >
> >         <ScheduleReboot
> > Sequence="6410">ISSCHEDULEREBOOT</ScheduleReboot>
> >
> >         <Custom Action="InstallUtil_proCubeExcel"    Sequence="6603">NOT
> > ((MaintenanceMode ="Remove") OR (REMOVE~="ALL"))</Custom>
> >         <InstallFinalize Sequence="6604" />
> >
> > -----Original Message-----
> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On 
> > Behalf Of Edwin Castro
> > Sent: Monday, July 31, 2017 11:50 AM
> > To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> > Subject: Re: [wix-users] Install Util, Custom Actions, Elevated etc
> >
> > Is your custom action running as an immediate custom action? If so, 
> > then when you schedule it before InstallFinalize it will run
> > *before* files are installed. Your custom action should run as a 
> > deferred custom action. You also probably want a rollback action 
> > scheduled before your deferred custom action to undo the changes if 
> > something
> fails and a rollback is triggered.
> > You'll probably need something similar on the uninstall side...
> >
> > --
> > Edwin G. Castro
> >
> >
> > On Mon, Jul 31, 2017 at 8:04 AM, Charles Gallo [9Dots Management] < 
> > CGallo at ixdots.com> wrote:
> >
> > > Maybe this might give some clues?
> > >
> > > MSI (s) (14:7C) [12:45:49:943]: Executing op:
> > > ActionStart(Name=InstallUtil_
> > > proCubeExcel,,)
> > > Action 12:45:49: InstallUtil_proCubeExcel.
> > > MSI (s) (14:7C) [12:45:49:943]: Executing op:
> > > CustomActionSchedule(Action=
> > > InstallUtil_proCubeExcel,ActionType=1074,Source=C:\Windows\Microso
> > > ft .N ET\ Framework\v2.0.50727\InstallUtil.exe ,Target="C:\Program 
> > > Files (x86)\Satori\proCube\bin\proCubeExcel2016-32.dll"
> > > /ShowCallStack ,) MSI (s) (14:68) [12:45:53:460]: Running as a 
> > > service.
> > >
> > > CustomAction InstallUtil_proCubeExcel returned actual error code
> > > -1 (note this may not be 100% accurate if translation happened 
> > > inside
> > > sandbox) Error 1722.There is a problem with this Windows Installer 
> > > package. A program run as part of the setup did not finish as 
> > > expected. Contact your support personnel or package vendor. Action 
> > > InstallUtil_proCubeExcel,
> > > location:
> > > C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe ,
> > > command: "C:\Program Files (x86)\Satori\proCube\bin\
> > proCubeExcel2016-32.dll"
> > > /ShowCallStack
> > > 07/28/2017 12:45:58.167 [5140]: Assembly Install: Failing with
> > > hr=80070005 at RemoveDirectoryAndChildren, line 393
> > >
> > > 07/28/2017 12:45:58.167 [5140]: Detailed info about 
> > > C:\Windows\assembly\tmp\XBFD3VWQ\proCubeApi.dll
> > >
> > > 07/28/2017 12:45:58.167 [5140]:         File attributes: 00000800
> > >
> > > 07/28/2017 12:45:58.198 [5140]:         Restart Manager Info: 1 entries
> > >
> > > 07/28/2017 12:45:58.198 [5140]:                 App[0]: (5140) Windows
> > > Installer (msiserver), type = 3
> > >
> > > 07/28/2017 12:45:58.198 [5140]:         Security info:
> > >
> > > 07/28/2017 12:45:58.198 [5140]:                 Owner: S-1-5-18
> > >
> > > 07/28/2017 12:45:58.198 [5140]:                 Group: S-1-5-18
> > >
> > > 07/28/2017 12:45:58.198 [5140]:                 DACL information: 5
> > > entries:
> > >
> > > 07/28/2017 12:45:58.198 [5140]:                 ACE[0]: Type = 0x00,
> > Flags
> > > = 010, Mask = 001f01ff, SID = S-1-5-18
> > >
> > > 07/28/2017 12:45:58.198 [5140]:                 ACE[1]: Type = 0x00,
> > Flags
> > > = 010, Mask = 001f01ff, SID = S-1-5-32-544
> > >
> > > 07/28/2017 12:45:58.198 [5140]:                 ACE[2]: Type = 0x00,
> > Flags
> > > = 010, Mask = 001200a9, SID = S-1-5-32-545
> > >
> > > 07/28/2017 12:45:58.198 [5140]:                 ACE[3]: Type = 0x00,
> > Flags
> > > = 010, Mask = 001200a9, SID = S-1-15-2-1
> > >
> > > 07/28/2017 12:45:58.198 [5140]:                 ACE[4]: Type = 0x00,
> > Flags
> > > = 010, Mask = 001200a9, SID = S-1-15-2-2
> > >
> > > Action ended 12:45:58: InstallFinalize. Return value 3.
> > >
> > >
> > > -----Original Message-----
> > > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On 
> > > Behalf Of Charles Gallo [9Dots Management]
> > > Sent: Monday, July 31, 2017 8:26 AM
> > > To: WiX Mailing List (wix-users at lists.wixtoolset.org) < 
> > > wix-users at lists.wixtoolset.org>
> > > Subject: [wix-users] Install Util, Custom Actions, Elevated etc
> > >
> > > [This sender failed our fraud detection checks and may not be who 
> > > they appear to be. Learn about spoofing at 
> > > http://aka.ms/LearnAboutSpoofing]
> > >
> > > Hey Gang,
> > > Still working on this install, it is making me nuts
> > >
> > > First, this is a translation/rebuild from an old Installshield 
> > > project, and it MOSTLY works
> > >
> > > Here is the issue - I have a DLL that needs to be run with 
> > > Installutil
> > > - not big issue, except the sequence numbers that were in the 
> > > installshield project had the custom actuion calling install util 
> > > (custom because what dll gets installed depends on other things) 
> > > after the <InstallFinalize>line
> > > - duh, that won't work
> > >
> > > Now here is the interesting part.
> > >
> > > If I run the InstallUtil line manually (elevated) AFTER the setup 
> > > fails, it works FINE If I move it JUST before (Sequence 6603) the 
> > > <InstallFinalize> (call it Sequence 6604), it fails and says that 
> > > some of the precursor DLLs have not been installed!! (but 
> > > obviously
> > > - they HAVE been installed, because I can manually run it right
> > > after)  I will say that one of the DLLs it is complaining about is 
> > > in GAC32
> > >
> > > Is it possible that it isn't actually installed at that point, 
> > > even though every install item has a sequence number, and the 
> > > installUtil call is the 2nd highest Sequence Number, right before 
> > > <InstallFinalize>
> > >
> > > I've spent weeks fighting this, and I feel like I'm chasing my 
> > > tail
> > >
> > >
> > > Charles Gallo | 9 DOTS
> > > Senior Director
> > > 1100 E Hector Street| Ste. 245 | Conshohocken, PA 19428
> > > C: 917.301.2749
> > > cgallo at ixdots.com<mailto:cgallo at ixdots.com>| ixdots.com<
> > http://www.ixdots.
> > > com/>
> > >
> > >
> > >
> > >
> > > __________________________________________________________________
> > > __ WiX Toolset Users Mailing List provided by FireGiant 
> > > http://www.firegiant.com/
> > >
> > > __________________________________________________________________
> > > __ WiX Toolset Users Mailing List provided by FireGiant 
> > > http://www.firegiant.com/
> > >
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant 
> > http://www.firegiant.com/
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant 
> > http://www.firegiant.com/
> >
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant 
> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant 
> http://www.firegiant.com/
>

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/


More information about the wix-users mailing list