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

Edwin Castro egcastr at gmail.com
Mon Jul 31 09:11:39 PDT 2017


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\Microsoft.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/
>


More information about the wix-users mailing list