This really smells like

>   71     <CustomAction Id="CheckingSecurityToken"
> BinaryKey="libprovisionmeter" DllEntry="provision_meter_msi" />

Is actually

<CustomAction Id="CheckingSecurityToken" BinaryKey="libprovisionmeter" 
DllEntry="provision_meter_msi" Execute="firstSequence" />

In non UI installs, only the InstallExecute sequence runs.  In full blown 
installs, both sequences run. To debug the calling of the custom action, I 
would recommend looking at your MSI with a tool like Orca or instead to see the 
actual sequence. From there you can look at the actions happening in your log 
file right before or after you expect your custom action to be called. Another 
thing to do would be to introduce logging via the MSI API's inside your custom 
action for the beginning and ending points.  

Jacob

-----Original Message-----
From: Joe Damato [mailto:j...@boundary.com] 
Sent: Tuesday, June 19, 2012 1:13 PM
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] custom action dll not getting called, debugging advice

hi -

this morning i tried installing my msi without using a full UI and noticed that 
the logfile output by the installer shows the dll getting hit.

it seems that InstallExecuteSequence (or the way i am using it) only happens 
during non-UI installs. i am currently reading docs about InstallUISequence to 
understand how to fix this when users do a UI install.

is there an example somewhere in the docs incorporating both 
InstallExecuteSequence and InstallUISequence?

joe

On Mon, Jun 18, 2012 at 3:26 PM, Joe Damato <j...@boundary.com> wrote:

> hi -
>
> i've written a dll which hits a REST api that my app needs to hit to 
> register its existence with the server, but for some reason or another 
> it seems that my dll is not being hit. i've built a simple exe that 
> links against the dll and that exe works, so i know my dll works at 
> least when linked against by something other than my MSI.
>
> my custom dialog is rendering correctly, however when i enter some 
> text into the edit field and click Next, i immediately get a "The key 
> is not valid. Verify that you entered the correct key." message that i 
> assume is some sort of built in message (?).
>
> i tried to follow along with the SampleCA example (
> http://wix.tramontana.co.hu/system/files/samples/SampleCA.zip) and 
> here's the relevant snippets from my files (i've pasted the full 
> contents of the files here: https://gist.github.com/f9388332734cca9eb722):
>
>   59     <Binary Id="libprovisionmeter" SourceFile="libprovisionmeter.dll"
> />
>   60
>   61     <UI Id="MyWixUI_InstallDir">
>   62       <UIRef Id="WixUI_InstallDir"/>
>   63       <DialogRef Id="SecurityTokenDlg"/>
>   64       <Publish Dialog="LicenseAgreementDlg" Control="Next"
> Event="NewDialog" Value="SecurityTokenDlg" Order="2">LicenseAccepted = 
> "1"</Publish>
>   65       <Publish Dialog="WelcomeDlg" Control="Back" Event="NewDialog"
> Value="SecurityTokenDlg">1</Publish>
>   66     </UI>
>   67
>   68     <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
>   69     <UIRef Id="WixUI_ErrorProgressText" />
>   70
>   71     <CustomAction Id="CheckingSecurityToken"
> BinaryKey="libprovisionmeter" DllEntry="provision_meter_msi" />
>   72     <CustomAction Id="RefuseSecurityToken" Error="Invalid security
> token. Installation aborted." />
>   73
>   74     <InstallExecuteSequence>
>   75       <Custom Action="CheckingSecurityToken" After="CostFinalize" />
>   76       <Custom Action="RefuseSecurityToken"
> After="CheckingSecurityToken">SECURITYTOKENACCEPTED = "0" AND NOT 
> Installed</Custom>
>   77     </InstallExecuteSequence>
>
> from my SecurityTokenDlg:
>
>    6         <Control Id="SecurityTokenLabel" Type="Text" X="45" Y="97"
> Width="80" Height="10" TabSkip="no" Text="&amp;Security Token:"/>
>    7         <Control Id="SecurityTokenEdit" Type="Edit" X="45" Y="109"
> Width="250" Height="16" Property="SECURITYTOKEN" />
>    8         <Control Id="Back" Type="PushButton" X="180" Y="243"
> Width="56" Height="17" Text="&amp;Back">
>    9           <Publish Event="NewDialog"
> Value="LicenseAgreementDlg">1</Publish>
>   10         </Control>
>   11         <Control Id="Next" Type="PushButton" X="236" Y="243"
> Width="56" Height="17" Default="yes" Text="&amp;Next">
>   12           <Publish Event="ValidateProductID" Value="0">1</Publish>
>   13           <Publish Event="SpawnWaitDialog"
> Value="WaitForCostingDlg">CostingComplete = 1</Publish>
>   14           <Publish Event="NewDialog"
> Value="WelcomeDlg">ProductID</Publish>
>   15         </Control>
>
> and the associated header file of my dll:
>
>      int __stdcall __declspec(dllexport) provision_meter_msi(MSIHANDLE 
> hInstall);
>
> any suggestions on what else i could do to extract some more debug 
> information from my MSI to track down where things are going awry?
>
> joe
>
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and threat 
landscape has changed and how IT managers can respond. Discussions will include 
endpoint security, mobile security and the latest in malware threats. 
http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to