According to the log you posted, the InstallExecuteSequence was not run
because the install was canceled from WelcomeDlg (it returned IDCANCEL, not
IDOK). Try actually running the install to completion to see the example as
written.

Section 3.3 introduces the sample. Section 3.4 (not in the code you linked
below) adds checking the PID while the UI is still running before you get to
the execute sequence.

Quoting from the tutorial: "Granted, what we've just done was not elegant.
We should check right when the user enters the key, display a warning and
give the user a chance to re-enter the key instead of aborting the
installation in a later phase.".

If you intend to fail an installation due to missing/invalid PID, you want
the check twice (once in the UI when the user can do something about it, and
once in the execute sequence since the UI sequence can be bypassed AND the
PID can be passed from the command-line (since it is a public property)). If
you follow 3.3 AND 3.4, you will have that double-check running.

-----Original Message-----
From: Lukas Haase [mailto:lukasha...@gmx.at] 
Sent: Sunday, July 25, 2010 5:01 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Is tutorial sample CA broken? (was: Re:
InstallExecuteSequence completely ignored)

Hi all,

I have downloaded and tried the Sample CA from the tutorial [1]: [2]

I compiled the DLL, ran candle/light and started the SampleCA.msi:

msiexec /i SampleCA.msi /l*xv SampleCA.log

This is the resulting SampleCA.log:

http://pastebin.com/Zph9xk5T

As you can see the neither the word "CheckPID" nor "CheckingPID" can be 
found in the log. Also, the PID is not checked as opposed in the 
tutorial. I can enter whatever I want. I also added a message box to the 
DLL code. The DLL is not called.

Maybe this sample is broken? Or did I miss something?

Also, once again the quote from the tutorial:

    "InstallExecuteSequence is always consulted by the installer to 
determine the actions, InstallUISequence is only considered when the 
installer runs in full or reduced UI mode"

Maybe this is wrong and InstallExecuteSequence is /not/ called when 
running in full/reduced UI mode?

Maybe it should be InstallUISequence instead of InstallExecuteSequence?

However, if I replace InstallExecuteSequence with InstallUISequence in 
the wxs file, the DLL is called but at the beginning of the 
installation! (not after entering the PID).

Any hints are greatly appreciated!

Regards,
   Luke



[1] http://www.tramontana.co.hu/wix/lesson3.php#3.1
[2] 
http://www.tramontana.co.hu/wix/download.php?file=samples/sampleca.zip&type=
application/zip

Am 23.07.2010 14:18, schrieb Lukas Haase:
> Dear Pally,
>
> Am 23.07.2010 11:04, schrieb Pally Sandher:
>> MSI (c) (74:80) [21:07:26:477]: Doing action: ValidateProductID Aktion
21:07:26: ValidateProductID.
>>
>> That's the InstallUISequence not the InstallExecuteSequence.
>
> Indeed! I changed now to InstallUISequence and now it works!
>
> But why? The tutorial clearly states that InstallExecuteSequence is
> *always* called:
>
>     "InstallExecuteSequence is always consulted by the installer to
> determine the actions, InstallUISequence is only considered when the
> installer runs in full or reduced UI mode (yet another functionality to
> experiment with, try msiexec /qn, /qb and /qr)"
>
> And second, this is the sample from the tutorial:
>
> <CustomAction Id="CheckingPID" BinaryKey="CheckPID" DllEntry="CheckPID" />
> <CustomAction Id="RefusePID" Error="Invalid key. Installation aborted." />
>
> <InstallExecuteSequence>
>     <Custom Action="CheckingPID" After="CostFinalize" />
>     <Custom Action="RefusePID" After="CheckingPID">PIDACCEPTED = "0" AND
> NOT Installed</Custom>
> </InstallExecuteSequence>
>
> <Binary Id="CheckPID" SourceFile="CheckPID.dll" />
>
> It uses InstallExecuteSequence as well!
>
>> WiX doesn't "ignore InstallExecuteSequence" as the
> InstallExecuteSequence is just another database table to WiX. WiX is a
> way for you to make packages for Windows Installer. If your custom
> action isn't running, it's highly unlikely the blame can be placed on WiX.
>
> Sorry if you got me wrong. Of course, I do NOT want to blame WiX :-) I
> just did not understand the action is not called (it seemed to me that
> my sequence was ignored)...
>
> Regards,
>     Luke
>
>
>
----------------------------------------------------------------------------
--
> This SF.net email is sponsored by Sprint
> What will you do first with EVO, the first 4G phone?
> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first



----------------------------------------------------------------------------
--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to