[wix-users] COM Object exception
John Cooper
JoCooper at jackhenry.com
Wed Mar 29 10:50:07 PDT 2017
In your authoring, you have Return="check". If you used "ignore" instead, it would treat the execution as a success regardless. This causes the MSI to evaluate the return code and return a 1603 if the CA failed. Of course, the CA has to return an appropriate ActionResult. Search the log for 1603 is usually a good way to localize a failure. InstallInitialize is not returning normally. '3' is not a success code.
--
John Merryweather Cooper
Senior Software Engineer -- Integration Development Group -- Enterprise Notification Service
Jack Henry & Associates, Inc.® | Lenexa, KS 66214 | Office: 913-341-3434x431050
JoCooper at jackhenry.com
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Alex Tuppen
Sent: Wednesday, March 29, 2017 12:40 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] COM Object exception
The e-mail below is from an external source. Please do not open attachments or click links from an unknown or suspicious origin.
I am certainly planning on implementing a rollback option before this goes anywhere near production but for now I want to make sure that I understand everything and have it working properly. Good to know about changing it to deferred, what do you mean be "check"?
Sorry if I was not clear before but the CA is not failing:
Action ended 13:46:43: CA_CustomAction. Return value 1.
The failure is InstallInitialize:
Action start 13:46:43: InstallInitialize.
Action ended 13:46:43: InstallInitialize. Return value 3.
Unless I have got my return values mixed up...
Alex
P.S. Awesome! Over here in the UK it is the company I work for https://www.poweronplatforms.com/
On Wed, 29 Mar 2017 at 17:54 John Cooper <JoCooper at jackhenry.com> wrote:
> I would change from immediate to deferred and author a rollback action.
> You could put whatever custom failure logic in the rollback CA--in
> addition to undoing the config change.
>
> In any event, "check" is going to set a 1603 on CA failure which is
> going to trigger a rollback and a failure code for the MSI.
>
> CA's that modify state should not be immediate, but there are various
> reasons why that is convenient.
>
> P.S. PowerON -- that's an extension to one of my products. :)
> --
> John Merryweather Cooper
> Senior Software Engineer -- Integration Development Group --
> Enterprise Notification Service Jack Henry & Associates, Inc.® |
> Lenexa, KS 66214 | Office:
> 913-341-3434x431050 <(913)%20341-3434> JoCooper at jackhenry.com
>
>
>
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> Behalf Of Alex Tuppen
> Sent: Wednesday, March 29, 2017 10:55 AM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Subject: Re: [wix-users] COM Object exception
>
> The e-mail below is from an external source. Please do not open
> attachments or click links from an unknown or suspicious origin.
>
> Well that makes a lot of sense and worked first time, thank you! Last
> question (hopefully) because my Google phu has failed me, I cannot
> find another example of someone using an MSI to just run a CA. My CA
> is now completing fine, but the MSI as a whole is failing, I assume
> that this has something to do with the fact that it is not actually installing anything.
> Does anyone know what I need to add into my MSI to make it report a
> successful install based on the CA result?
>
> <?xml version="1.0" encoding="UTF-8"?> <Wix
> xmlns="http://schemas.microsoft.com/wix/2006/wi">
> <Product Id="9CA8C1BA-4944-47EB-B0D3-14E452CC995E"
> Name="PowerONConfiguration"
> Language="1033"
> Version="1.0.0.0"
> Manufacturer="PowerON"
> UpgradeCode="5bf0657c-e3dd-477b-a352-f7e27c4068a3">
> <Package InstallerVersion="200"
> Compressed="yes"
> InstallScope="perMachine" />
>
> <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName]
> is already installed." /> <MediaTemplate />
>
> <Property Id="CUSTOMERID" Secure="yes" Value="No CustomerID set"
> />
>
> <UIRef Id="WixUI_ErrorProgressText"/>
>
> <Binary Id="CustomActionDLL"
> SourceFile="$(var.CustomAction.TargetDir)CustomAction.CA.dll"
> />
>
> <CustomAction Id="CA_CustomAction"
> BinaryKey="CustomActionDLL"
> DllEntry="ConfigureHybridWorker"
> Execute="immediate"
> Return="check" />
>
> <InstallUISequence>
> <Custom Action="CA_CustomAction"
> After="CostFinalize"/>
> </InstallUISequence>
>
> <InstallExecuteSequence>
> <Custom Action="CA_CustomAction"
> After="CostFinalize"/>
> </InstallExecuteSequence>
> </Product>
> </Wix>
>
> Alex
>
> On Wed, 29 Mar 2017 at 13:36 David Watson <dwatson at sdl.com> wrote:
>
> > Hi,
> > I think the default behaviour of an msi in a bundle is to run
> > silently, this means that the UI is not displayed and the
> > InstallUISequence is not processed.
> >
> > Your custom action is immediate and scheduled in the UI sequence so
> > is not being run - note the (c) next to the log entries that denote
> > the client sequence for the ui. (s) for the server level from the
> > InstallExecute sequence.
> >
> > Dave
> >
> >
> > [http://dr0muzwhcp26z.cloudfront.net/static/corporate/SDL_emailLogo.
> > pn
> > g]<
> > www.sdl.com/>
> > www.sdl.com
> >
> >
> > SDL PLC confidential, all rights reserved. If you are not the
> > intended recipient of this mail SDL requests and requires that you
> > delete it without acting upon or copying any of its contents, and we
> > further request that you advise us.
> >
> > SDL PLC is a public limited company registered in England and Wales.
> > Registered number: 02675207.
> > Registered address: Globe House, Clivemont Road, Maidenhead,
> > Berkshire
> > SL6 7DY, UK.
> >
> > -----Original Message-----
> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> > Behalf Of Alex Tuppen
> > Sent: 29 March 2017 10:32
> > To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> > Subject: Re: [wix-users] COM Object exception
> >
> > That is what I thought, but that is not what the logs are telling me
> > is happening. The log for the MSI if I run the bundle says this:
> >
> > Action start 9:12:21: CostInitialize.
> > MSI (s) (B4:C4) [09:12:21:049]: Doing action: FileCost Action ended
> > 9:12:21: CostInitialize. Return value 1.
> > MSI (s) (B4:C4) [09:12:21:049]: Note: 1: 2205 2: 3: MsiAssembly
> > Action start 9:12:21: FileCost.
> > MSI (s) (B4:C4) [09:12:21:049]: Doing action: CostFinalize Action
> > ended 9:12:21: FileCost. Return value 1.
> > MSI (s) (B4:C4) [09:12:21:049]: Note: 1: 2731 2: 0 Action start
> > 9:12:21: CostFinalize.
> >
> > Whereas the log if I run the MSI outside of the bundle, I get this:
> >
> > Action start 9:26:27: FileCost.
> > MSI (c) (E8:44) [09:26:27:493]: Note: 1: 2205 2: 3: MsiAssembly MSI
> > (c) (E8:44) [09:26:27:493]: Note: 1: 2205 2: 3: Registry MSI (c)
> > (E8:44) [09:26:27:493]: Note: 1: 2205 2: 3: Registry MSI (c)
> > (E8:44)
> > [09:26:27:493]: Note: 1: 2205 2: 3: Class MSI (c) (E8:44)
> > [09:26:27:493]: Note: 1: 2205 2: 3: Extension MSI (c) (E8:44)
> > [09:26:27:493]: Note: 1: 2205 2: 3: TypeLib Action ended 9:26:27:
> > FileCost. Return value 1.
> > MSI (c) (E8:44) [09:26:27:493]: Doing action: CA_CustomAction Action
> > 9:26:27: CA_CustomAction.
> > Action start 9:26:27: CA_CustomAction.
> >
> > Does the difference between the two simply mean that verbose logging
> > is still not working? just to check that I have configured it
> > correctly the CA is being called from the MSI like this:
> >
> > <Binary Id="CustomActionDLL"
> >
> > SourceFile="$(var.CustomAction.TargetDir)CustomAction.CA.dll" />
> >
> > <CustomAction Id="CA_CustomAction"
> > BinaryKey="CustomActionDLL"
> > DllEntry="ConfigureHybridWorker"
> > Execute="immediate"
> > Return="check" />
> >
> > <InstallUISequence>
> > <Custom Action="CA_CustomAction"
> > Before="CostFinalize"/>
> > </InstallUISequence>
> >
> > Alex
> >
> > On Tue, 28 Mar 2017 at 16:42 Phill Hogland
> > <phill.hogland at rimage.com>
> > wrote:
> >
> > > Not that I know of. The CA is in the MSI. There is no concept of a
> CA
> > > in a bundle. The bundle processes the MsiPackage and whatever is
> > authored
> > > in the MSI is processed by msiexec.
> > >
> > > ________________________________
> > > From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf
> > > of Alex Tuppen <alex.tuppen at gmail.com>
> > > Sent: Tuesday, March 28, 2017 9:55:50 AM
> > > To: WiX Toolset Users Mailing List
> > > Subject: Re: [wix-users] COM Object exception
> > >
> > > Thank you for such a fast and comprehensive reply! Unfortunately
> > > even
> > with
> > > verbose logging enabled in the registry (and double checking that
> > > that is working by running the MSI separately) I am not seeing my
> > > CA start. Is there any reason why a CA would work fine when the
> > > MSI is run by itself
> > but
> > > not when run from inside a bundle?
> > >
> > > Alex
> > >
> > > On Tue, 28 Mar 2017 at 15:13 Phill Hogland
> > > <phill.hogland at rimage.com>
> > > wrote:
> > >
> > > There are several approaches to debug a CA.
> > >
> > > 1) Enable verbose MSI logging either in the registry or on the
> > commandline.
> > >
> > >
> > https://support.microsoft.com/en-us/help/223300/how-to-enable-window
> > s-
> > installer-logging
> > >
> > > How to enable Windows Installer logging<
> > >
> > >
> > https://support.microsoft.com/en-us/help/223300/how-to-enable-window
> > s-
> > installer-logging
> > > >
> > > support.microsoft.com
> > > Windows includes a registry-activated logging service to help
> > > diagnose Windows Installer issues. This article describes how to
> > > enable this
> > logging
> > > service.
> > >
> > >
> > >
> > >
> > > 2) when using Burn pass LOGVERBOSE (with anything) as a
> > > MsiProperty of
> > the
> > > MsiPackage. Setting the machine MSI logging policy in the
> > > registry to include *v is equivalent to using LOGVERBOSE, but when
> > > LOGVERBOSE is used without the policy on the CAs get the verbose
> > > logging, which may easier
> > to
> > > work with.
> > >
> > > 3) Set the Environment variable MsiBreak = 'NameOfCustomAction'.
> > > Then
> > have
> > > your source project open and when prompted attach to the msiexec
> > > process related to your CA using the PID provided in the dialog.
> > >
> > >
> > > Here are some other approaches (note Rob's post):
> > >
> > >
> > >
> > http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-to
> > -d ebug-CustomAction-DLL-td5458781.html
> > >
> > >
> > >
> > > The CA should set a return code.
> > >
> > >
> > >
> > https://msdn.microsoft.com/en-us/library/windows/desktop/aa368072(v=
> > vs
> > .85).aspx
> > >
> > > Custom Action Return Values (Windows)<
> > >
> > >
> > https://msdn.microsoft.com/en-us/library/windows/desktop/aa368072(v=
> > vs
> > .85).aspx
> > > >
> > > msdn.microsoft.com
> > > If the msidbCustomActionTypeContinue return processing option is
> > > not set, the custom action must return an integer status code as
> > > shown in the following table.
> > >
> > >
> > >
> > >
> > > There are many examples in the wix source code under the src\ext
> folder.
> > >
> > >
> > > Phill
> > >
> > > wix-users - How to debug CustomAction DLL<
> > >
> > >
> > http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-to
> > -d ebug-CustomAction-DLL-td5458781.html
> > > >
> > > windows-installer-xml-wix-toolset.687559.n2.nabble.com
> > > How to debug CustomAction DLL. Dear Wix Experts: We have a
> > > CustomAction
> > DLL
> > > written in C. How to debug it? There are a few posts about it:
> Post1:...
> > >
> > >
> > > ________________________________
> > > From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf
> > > of
> > Alex
> > > Tuppen <alex.tuppen at gmail.com>
> > > Sent: Tuesday, March 28, 2017 8:44:35 AM
> > > To: WiX Toolset Users Mailing List
> > > Subject: Re: [wix-users] COM Object exception
> > >
> > > I have finally had the time to get this working so first a massive
> > > thank you for pointing me in the right direction. However now I
> > > cannot work out how to have the MSI return anything other than an
> > > error. I assume that
> > this
> > > is because the MSI is not actually doing anything other than
> > > running the custom action, what is the best way to resolve this?
> > >
> > > Alternatively this could be because the CA is erroring and I have
> > > not
> > been
> > > able to enable verbose logging of the MSI when running it from
> > > within the bootstrapper (I can see that most of the CA runs
> > > outside the bootstrapper but it relies on some logic in the
> > > bootstrapper for a variable so it
> > always
> > > errors outside). Is there a way to force verbose logging while I
> > > am developing?
> > >
> > > Thank you,
> > >
> > > Alex
> > >
> > > On Wed, 22 Feb 2017 at 17:17 Hoover, Jacob
> > > <Jacob.Hoover at greenheck.com>
> > > wrote:
> > >
> > > > WixStdBA already does this. Have a look @ OnExecuteMsiMessage.
> > > > Note if
> > > you
> > > > want super detailed progress you need a custom them that
> > > > includes a ExecuteProgressActionDataText control.
> > > >
> > > > -----Original Message-----
> > > > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org]
> > > > On
> > > Behalf
> > > > Of Alex Tuppen
> > > > Sent: Wednesday, February 22, 2017 3:35 AM
> > > > To: WiX Toolset Users Mailing List
> > > > <wix-users at lists.wixtoolset.org>
> > > > Subject: Re: [wix-users] COM Object exception
> > > >
> > > > Feedback from the install progress and messages, what is the
> > > > best way
> > to
> > > > pass that back?
> > > >
> > > > On Tue, 21 Feb 2017 at 23:20 Hoover, Jacob
> > > > <Jacob.Hoover at greenheck.com
> > >
> > > > wrote:
> > > >
> > > > > Define information? If you are using burn, normally the BA
> > > > > would collect any configuration information and pass it to the
> > > > > MSI as a property. If you are talking about feedback from the
> > > > > install progress and messages, then yes. If you are using
> DisplayInternalUI then no.
> > > > >
> > > > > -----Original Message-----
> > > > > From: wix-users
> > > > > [mailto:wix-users-bounces at lists.wixtoolset.org]
> > > > > On Behalf Of Alex Tuppen
> > > > > Sent: Tuesday, February 21, 2017 3:38 PM
> > > > > To: WiX Toolset Users Mailing List
> > > > > <wix-users at lists.wixtoolset.org>
> > > > > Subject: Re: [wix-users] COM Object exception
> > > > >
> > > > > That makes sense, is it possible to pass information from an
> > > > > MSI back to bootstrapper for the GUI?
> > > > >
> > > > > On Tue, 21 Feb 2017 at 19:53 Hoover, Jacob
> > > > > <Jacob.Hoover at greenheck.com>
> > > > > wrote:
> > > > >
> > > > > > You could create a MSI with your configuration in it and put
> > > > > > it in the chain after the MMA MSI.
> > > > > >
> > > > > > -----Original Message-----
> > > > > > From: wix-users
> > > > > > [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of
> > > > > > Alex Tuppen
> > > > > > Sent: Tuesday, February 21, 2017 1:36 PM
> > > > > > To: WiX Toolset Users Mailing List
> > > > > > <wix-users at lists.wixtoolset.org
> > >
> > > > > > Subject: Re: [wix-users] COM Object exception
> > > > > >
> > > > > > Are there any options if the MSI I am installing is not one
> > > > > > that I have made? I looked at custom actions but I can't run
> > > > > > those in the bundle itself. Basically I am just installing
> > > > > > the MMA and then configuring it to point to Azure where the
> > > > > > actual work is done (hence why I am not installing anything
> > > > > > that i have
> written).
> > > > > >
> > > > > > On Tue, 21 Feb 2017 at 17:54 Phill Hogland
> > > > > > <phill.hogland at rimage.com>
> > > > > > wrote:
> > > > > >
> > > > > > > A BA should not try to implement any configuration changes.
> > > > > > > You might look at using a DTF CA in a chained MSI or as
> > > > > > > there is a similar PowerShell script posted in the
> > > > > > > following link then consider using the
> > > > > > Wix PSExtension.
> > > > > > >
> > > > > > > ________________________________
> > > > > > > From: wix-users <wix-users-bounces at lists.wixtoolset.org>
> > > > > > > on
> > behalf
> > > > > > > of Alex Tuppen <alex.tuppen at gmail.com>
> > > > > > > Sent: Tuesday, February 21, 2017 10:37:54 AM
> > > > > > > To: wix-users at lists.wixtoolset.org
> > > > > > > Subject: [wix-users] COM Object exception
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > I was wondering if there is anything that I need to do to
> > > > > > > be able to use a COM object from within a custom bootstrapper.
> > > > > > > I have the same COM object working outside the
> > > > > > > bootstrapper but no matter what I try it always throws an
> > > > > > > exception when the bootstrapper
> > > tries
> > > > to use it.
> > > > > > >
> > > > > > > The COM object in question is for the Microsoft Monitoring
> > > > > > > Agent and is registered when the MMA is installed. I am
> > > > > > > attempting to use it with the following code:
> > > > > > >
> > > > > > > public async Task<string> ConfigureOMSAgent()
> > > > > > > {
> > > > > > > return await Task.Run(() =>
> > > > > > > {
> > > > > > > try
> > > > > > > {
> > > > > > > // Load COM object
> > > > > > >
> > > > > > > Bootstrapper.Engine.Log(LogLevel.Verbose,
> > > > > > > "Loading ManagementServiceConfiguration COM object");
> > > > > > >
> > > > > > > AgentConfigManagerLib.ManagementServiceConfiguration
> > > > > > > mgmntSrvCnfg = new
> > > > > > AgentConfigManagerLib.ManagementServiceConfiguration();
> > > > > > > // Configuring MMA as OMS agent
> > > > > > >
> > > > > > > Bootstrapper.Engine.Log(LogLevel.Verbose,
> > > > > > > "Configuring MMA as OMS agent");
> > > > > > >
> > > > > > > mgmntSrvCnfg.AddCloudWorkspace(WorkSpaceID,
> > > > > > > WorkSpaceKey);
> > > > > > > // Return empty string indicating success
> > > > > > > return string.Empty;
> > > > > > > }
> > > > > > > catch (Exception e)
> > > > > > > {
> > > > > > > ErrorThrown(e.Message);
> > > > > > > return e.Message;
> > > > > > > }
> > > > > > > });
> > > > > > > }
> > > > > > >
> > > > > > > Any help will be amazing!
> > > > > > >
> > > > > > > Thank you,
> > > > > > >
> > > > > > > Alex
> > > > > > >
> > > > > > >
> > __________________________________________________________________
> > > > > > > __ 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/
> > > >
> > >
> > > __________________________________________________________________
> > > __ 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/
> >
> >
> > This message has been scanned for malware by Websense.
> > www.websense.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/
>
> NOTICE: This electronic mail message and any files transmitted with it
> are intended exclusively for the individual or entity to which it is
> addressed. The message, together with any attachment, may contain
> confidential and/or privileged information.
> Any unauthorized review, use, printing, saving, copying, disclosure or
> distribution is strictly prohibited. If you have received this message
> in error, please immediately advise the sender by reply email and
> delete all copies.
>
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
NOTICE: This electronic mail message and any files transmitted with it are intended
exclusively for the individual or entity to which it is addressed. The message,
together with any attachment, may contain confidential and/or privileged information.
Any unauthorized review, use, printing, saving, copying, disclosure or distribution
is strictly prohibited. If you have received this message in error, please
immediately advise the sender by reply email and delete all copies.
More information about the wix-users
mailing list