Hi,

I have a custom action which is sequenced to run at number 1554. When an 
Upgrade is happening, this custom action runs twice; 1st for Uninstall and then 
for Install. I want that this custom action should run only for Uninstall 
iteration and should skip at Install iteration internally when an Upgrade is 
happening (i.e. when Uninstall and Install both cycles run one after other).

I couldn't find any condition which will separate these two scenarios 
(Uninstall and Install phase of an upgrade). There is no property which changes 
after the Uninstall cycle is over.
REMOVE="ALL" is true from the beginning till end of whole upgrade cycle.

Hence I wrote another custom action which will set value of a property 
(UNINSTALLMARKED) at sequence number around 1555 so that when Install starts 
after Uninstall, I can use this property to differentiate between two 
scenarios. So My condition looks like below:

<Custom Action="QtExecHKCRHTTPImportProperty_Cmd" 
Sequence="1554">(REMOVE="ALL") AND (EXISTINGVERSION) AND (NOT 
UNINSTALLMARKED)</Custom>

EXISTINGVERSION property also is always set right from the beginning as it 
detects an Upgrade.

I assumed when Uninstall cycle starts above condition will be true as 
'UNINSTALLMARKED' will not be set at sequence number 1554. But it will be set 
at 1555. Hence this custom action will get executed for the Uninstall cycle and 
will be skipped for Install cycle as by then the 'UNINSTALLMARKED'' property 
will be set.

However when I ran an Upgrade (run msi), below are the logs:

MSI (s) (14:F4) [06:22:19:824]: Skipping action: 
QtExecHKCRHTTPImportProperty_Cmd (condition is false)
MSI (s) (14:F4) [06:22:19:864]: PROPERTY CHANGE: Adding UNINSTALLMARKED 
property. Its value is 'UNINSTALLED'.

I don't understand if the property is getting set after the custom action then 
why the condition is false? I believe out of three properties in the condition 
the culprit is 'UNINSTALLMARKED' as according to logs both other properties are 
getting set very early in the logs.

Is it like even if I see property getting set later in the logs, it actually is 
set before itself? Below is how I am setting property.

<CustomAction Id="CA_MarkUninstall" Property="UNINSTALLMARKED" 
Value="UNINSTALLED" Execute="immediate" />
<Custom Action="CA_MarkUninstall" Sequence="1555"></Custom>

I basically need a condition which will differentiate between UNINSTALL and 
INSTALL phase of an Upgrade.


Aparna Karkare
L&T Infotech
OAI-sys<http://inside.here.travp.net/OperationsSystems/iwcm/IT/Portfolios/Architecture/Components/index.aspx>,
 Enterprise Components and Frameworks
Office: 020-6641-6142
Email: [email protected]

________________________________
This communication, including attachments, is confidential, may be subject to 
legal privileges, and is intended for the sole use of the addressee. Any use, 
duplication, disclosure or dissemination of this communication, other than by 
the addressee, is prohibited. If you have received this communication in error, 
please notify the sender immediately and delete or destroy this communication 
and all copies.

TRVDiscDefault::1201
------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to