Hi Thomas,

Thanks a lot for posting the code for this. Because I need the CA to be 
run only when uninstall, not also through an update, I conditioned the 
CAs, so the code looks like:

<CustomAction Id="QtExecDeferred_Cmd" Property="QtExecDeferred" 
Value='"[SystemFolder]Cmd.exe"  /C del /Q "[INSTALLLOCATION]momo.txt"'/>
<CustomAction Id="QtExecDeferred" BinaryKey="WixCA" 
DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>

<InstallExecuteSequence>
<Custom Action="QtExecDeferred" 
After="RemoveExistingProducts">REMOVE="ALL" AND NOT 
UPGRADINGPRODUCTCODE</Custom>
<Custom Action="QtExecDeferred_Cmd" Before="QtExecDeferred">REMOVE="ALL" 
AND NOT UPGRADINGPRODUCTCODE</Custom>
</InstallExecuteSequence>


and it works as expected.
Thank you,
MeCoco


On 11/29/2010 5:42 PM, Thomas S. Trias wrote:
> It's too bad that RemoveFile won't work, since it does provide 
> appropriate transacted functionality; that said, the answer to using 
> properties within the command line is to use a custom action to set 
> the property value:
>
> <CustomAction Id="SetAspNet20_Cmd" Property="SetAspNet20" 
> Value="&quot;[NETFRAMEWORK20INSTALLROOTDIR]aspnet_regiis.exe&quot; -ir 
> -enable"/>
> <CustomAction Id="SetAspNet20" BinaryKey="WixCA" 
> DllEntry="CAQuietExec" Execute="deferred" Return="check"/>
>
> <InstallExecuteSequence>
> <Custom Action="SetAspNet20_Cmd" Before="CostFinalize">NOT 
> (SKIPCONFIGUREIIS OR Installed) AND VersionNT &gt; 400</Custom>
> <Custom Action="SetAspNet20" Before="ConfigureIIs">NOT 
> (SKIPCONFIGUREIIS OR Installed) AND VersionNT &gt; 400</Custom>
> </InstallExecuteSequence>
>
> in your case:
>
> <CustomAction Id="QtExecDeferred_Cmd" Property="QtExecDeferred" 
> Value='"[SystemFolder]\Cmd.exe"  /C del /Q 
> "[INSTALLLOCATION]\momo.txt"'/>
> <CustomAction Id="QtExecDeferred" BinaryKey="WixCA" 
> DllEntry="CAQuietExec" Execute="deferred" Return="ignore" 
> Impersonate="no"/>
>
> <InstallExecuteSequence>
> <Custom Action="QtExecDeferred_Cmd" Before="CostFinalize"/>
> <Custom Action="QtExecDeferred" After="RemoveExistingProducts"/>
> </InstallExecuteSequence>
>
> Thanks,
>
> Thomas S. Trias
> Senior Developer
> Artizan Internet Services
> http://www.artizan.com/
>
>
> -------- Original Message  --------
> Subject: Re: [WiX-users] QtExecDeferred and using a property in the 
> cmd line
> From: MeCoco <vcotirl...@hotmail.com>
> To: General discussion for Windows Installer XML toolset.
> <wix-users@lists.sourceforge.net>
> Date: 11/29/2010 8:25 AM
>> Hi Peter.
>>
>> Thx for your answer, but I can't do that because I need the files to 
>> be removed _only_ when uninstall (not updates) and I have 
>> <RemoveExistingProducts After="InstallInitialize"/>. And as I 
>> described here:
>> http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/BUG-limitation-in-WIX-MSI-No-way-to-distinguish-between-an-uninstall-and-an-update-when-lt-RemoveExi-td5776494.html
>>  
>>
>> when REP is after InstallInitialize, it can't be done with Component 
>> conditions.
>>
>> So I need a CustomAction which deletes the file and can be 
>> conditioned to happen only when real uninstalls. Because of that I 
>> got to the code below, which doesn't work.
>> Can somebody pls help me?
>>
>> Thanks,
>> MeCoco
>>
>> On 11/29/2010 2:54 PM, Peter Shirtcliffe wrote:
>>> Use the<RemoveFile>  element instead.
>>>
>>>
>>> -----Original Message-----
>>> From: MeCoco [mailto:vcotirl...@hotmail.com]
>>> Sent: 29 November 2010 13:45
>>> To: General discussion for Windows Installer XML toolset.
>>> Subject: [WiX-users] QtExecDeferred and using a property in the cmd 
>>> line
>>>
>>> Hi all,
>>>
>>> I need to delete a specific file (created by our product) after
>>> uninstalling the product. For that I'm using the Quiet Execution
>>> CustomAction like:
>>>
>>> <Property Id="QtExecDeferred" Value='"[SystemFolder]\Cmd.exe"  /C 
>>> del /Q
>>>
>>> "[INSTALLLOCATION]\momo.txt"'/>
>>> <CustomAction Id="QtExecDeferred" BinaryKey="WixCA"
>>> DllEntry="CAQuietExec" Execute="deferred" Return="ignore"
>>> Impersonate="no"/>
>>>
>>> <InstallExecuteSequence>
>>> <Custom Action="QtExecDeferred" After="RemoveExistingProducts"/>
>>> </InstallExecuteSequence>
>>>
>>>
>>> When I'm building this I get the following 2 warnings:
>>>
>>> warning CNDL1077: The 'QtExecDeferred' Property contains
>>> '[SystemFolder]' in its value which is an illegal reference to another
>>> property.  If this value is a string literal, not a property reference,
>>> please ignore this warning.  To set a property with the value of 
>>> another
>>>
>>> property, use a CustomAction with Property and Value attributes.
>>> warning CNDL1077: The 'QtExecDeferred' Property contains
>>> '[APPLICATIONFOLDER]' in its value which is an illegal reference to
>>> another property.  If this value is a string literal, not a property
>>> reference, please ignore this warning.  To set a property with the 
>>> value
>>>
>>> of another property, use a CustomAction with Property and Value
>>> attributes.
>>>
>>> By looking into the log file, I see that the execution failed, with
>>> "file not found":
>>> MSI (s) (4C:28) [14:26:46:842]: Executing op:
>>> CustomActionSchedule(Action=QtExecDeferred,ActionType=3137,Source=Binary 
>>>
>>> Data,Target=CAQuietExec,CustomActionData="[SystemFolder]\Cmd.exe"
>>> /C del /Q "[INSTALLLOCATION]\momo.txt")
>>> MSI (s) (4C:80) [14:26:46:853]: Invoking remote custom action. DLL:
>>> C:\Windows\Installer\MSI8DF2.tmp, Entrypoint: CAQuietExec
>>> MSI (s) (4C:80) [14:26:46:853]: Generating random cookie.
>>> MSI (s) (4C:80) [14:26:46:871]: Created Custom Action Server with PID
>>> 7996 (0x1F3C).
>>> MSI (s) (4C:4C) [14:26:46:973]: Running as a service.
>>> MSI (s) (4C:4C) [14:26:46:976]: Hello, I'm your 32bit Elevated custom
>>> action server.
>>> CAQuietExec:  Error 0x80070002: Command failed to execute.
>>> CAQuietExec:  Error 0x80070002: CAQuietExec Failed
>>>
>>>
>>> I assume the problem is that I'm using [SystemFolder] and
>>> [INSTALLLOCATION] in a deferred CustomAction.
>>>
>>> By searching the internet I found somebody saying:
>>> ">  You can't access properties directly from a defered custom action.
>>> You
>>> >  have to use another custom action that sets a property matching the
>>> name of
>>> >  your action."
>>>
>>> The problem is that I don't know how to do that? Can someone pls, 
>>> taking
>>>
>>> in account the above lines of code, tell me how and what do I need to
>>> change to follow this instruction?
>>>
>>> Thank you,
>>> MeCoco
>>>
>>> ------------------------------------------------------------------------ 
>>>
>>> ------
>>> Increase Visibility of Your 3D Game App&  Earn a Chance To Win $500!
>>> Tap into the largest installed PC base&  get more eyes on your game by
>>> optimizing for Intel(R) Graphics Technology. Get started today with the
>>> Intel(R) Software Partner Program. Five $500 cash prizes are up for
>>> grabs.
>>> http://p.sf.net/sfu/intelisp-dev2dev
>>> _______________________________________________
>>> WiX-users mailing list
>>> WiX-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>> 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.
>>>
>>>
>>> ------------------------------------------------------------------------------
>>>  
>>>
>>> Increase Visibility of Your 3D Game App&  Earn a Chance To Win $500!
>>> Tap into the largest installed PC base&  get more eyes on your game by
>>> optimizing for Intel(R) Graphics Technology. Get started today with the
>>> Intel(R) Software Partner Program. Five $500 cash prizes are up for 
>>> grabs.
>>> http://p.sf.net/sfu/intelisp-dev2dev
>>> _______________________________________________
>>> WiX-users mailing list
>>> WiX-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/wix-users
>>>
>>>
>>
>>
>>
>
>
>


------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to