Sorry, I havent been following this thread, but I did have a glance at
the code while waiting for an installation :)

!ERROR_SUCCESS isnt a valid custom action return. See this list
http://msdn.microsoft.com/en-us/library/aa368072%28VS.85%29.aspx


-----Original Message-----
From: Lukas Haase [mailto:lukasha...@gmx.at] 
Sent: 26 July 2010 11:44
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Upgrading from other setup program to WiX/MSI

Hi,

I changed my approach a little bit. For reference:

This is what I added to my wxs file:

<CustomAction Id='CheckingSpecialist' BinaryKey='CheckingSpecialist'
   DllEntry='CheckSpecialist' />
<InstallUISequence>
   <Custom Action='CheckingSpecialist' After='LaunchConditions' />
</InstallUISequence> <Binary Id='CheckingSpecialist'
SourceFile='CheckSpecialist.dll' />

And this is my small CheckSpecialist.c:

http://pastebin.com/mBL01Wtz

So the return value is either ERROR_SUCCESS or !ERROR_SUCCESS. I do not
use MsiSetProperty any more and just one custom action.

If anybody sees a bad thing in this approach/code I would really
appreciate a hint.

Regards,
   Luke



Am 25.07.2010 17:27, schrieb Blair:
> If the other setup package is ultimately MSI, you should ideally use 
> the Upgrade table to remove it (via the RemoveExistingProducts action 
> using the "Major Upgrade" method). However, that doesn't work if the 
> ALLUSERS value differs between the two installations and you will need

> to look at ways to bootstrap that uninstallation, since you can't run 
> it at all from the InstallExecuteSequence.
>
> If the other setup package is not-at-all MSI, there is nothing to pass

> to Windows Installer, since WI can only deal with MSI packages, and 
> you will need to execute the uninstall executable somehow/somewhere.
>
> -----Original Message-----
> From: Lukas Haase [mailto:lukasha...@gmx.at]
> Sent: Sunday, July 25, 2010 5:18 AM
> To: wix-users@lists.sourceforge.net
> Subject: Re: [WiX-users] Upgrading from other setup program to WiX/MSI
>
> Dear Blair,
>
> Thank you for the hint! I will replace my MessageBox-call prompt with 
> MsiProcessMessage/WcaProcessMessage ...
>
> Apart from this, my approach is good practice? Or is it maybe better 
> to pass the uninstall to MSI and executing it there rather than 
> calling ShellExecuteEx from the DLL?
>
> Regards,
>     Luke
>
>
> Am 23.07.2010 08:54, schrieb Blair:
>> You shouldn't prompt from the execute sequence. There are ways of
> "running"
>> MSI files where there is no user session to respond to the prompt and

>> you would hang your install.
>>
>> The best way to show a message box from a custom action (and the only

>> supported way if you must do so from the execute sequence) is using 
>> the MsiProcessMessage API (or something that wraps it, like 
>> WcaProcessMessage
> or
>> Microsoft.Deployment.WindowsInstaller.Session.Message).
>>
>> -----Original Message-----
>> From: Lukas Haase [mailto:lukasha...@gmx.at]
>> Sent: Thursday, July 22, 2010 12:47 PM
>> To: wix-users@lists.sourceforge.net
>> Subject: Re: [WiX-users] Upgrading from other setup program to 
>> WiX/MSI
>>
>> Dear Blair,
>>
>> Am 22.07.2010 01:04, schrieb Blair:
>>> 1. You can build MSIs with WiX that don't require running the setup 
>>> as administrator. Nothing that can be done outside of Windows 
>>> Installer
>> without
>>> elevation requires elevation in Windows Installer to also do.
>>
>> In fact this is exactly what I do NOT want: I need to register a COM 
>> component which requires admin privileges.
>>
>> So I have
>>
>> <Property Id="ALLUSERS">1</Property>
>>
>> and
>>
>> <Condition Message="...">
>>      Privileged
>> </Condition>
>>
>> and I am lucky. In fact this is exactly what messed up my previous 
>> installations with SetupSpecialist: The old "viewer" did not need 
>> registering a COM, so some users installed as admins and systemwide, 
>> others not.
>>
>> Finally, SetupSpecialist lets you run the setup as normal user and 
>> when registering the COM the there is an error. The setup terminates 
>> and the a half installed system is left.
>>
>> In my opinion it is the best and consistent way to install the 
>> software just into the system (incl. Shortcuts for all users)
>>
>>> 2. Windows Installer has no built-in support for detecting/removing
>> non-MSI
>>> packages. However, if you know how to find/remove your 
>>> SetupSpecialist package (the Uninstall key, perhaps?) then you can 
>>> detect presence and automate removal as part of your upgrade (does 
>>> the old installer allow "silent" removal?) You may have trouble 
>>> detecting/removing things
>> installed
>>> by other than the current user, however, but that is due to the 
>>> nature of how Windows treats user accounts/profiles, not do to any 
>>> inherent
>> limitation
>>> in Windows Installer itself.
>>
>> Thank you for the hint. This is what I have done now. As written in a

>> new post ("InstallExecuteSequence completely ignored") I face heavy 
>> problems concerning this right now.
>>
>> However, my approach is:
>>
>> <CustomAction Id='CheckingSpecialist' BinaryKey='CheckingSpecialist'
>>      DllEntry='CheckSpecialist' />
>> <CustomAction Id='RefuseInstall' Error='You must uninstall the old 
>> one first' />
>>
>> <InstallExecuteSequence>
>>      <Custom Action='CheckingSpecialist' After='LaunchConditions' />
>>      <Custom Action='RefuseInstall' After='CheckingSpecialist'>ABORT 
>> = "1"</Custom> </InstallExecuteSequence>
>>
>> <Binary Id='CheckingSpecialist'
>>      SourceFile='CheckSpecialist/Release/CheckSpecialist.dll' />
>>
>> The DLL just opens the registry key in Uninstall and reads out the 
>> path to the uninstall program.
>>
>> Then it asks: "You must remove the old first, do you want to?". If 
>> the users answers with no, then ABORT = 1 is set.
>>
>> Otherwise, the process uninstall is started with ShellExecuteEx and 
>> waited for termination with WaitForSingleObject. Afterwards ABORT = 0

>> is set.
>>
>> If it fails to open the key (i.e. no old version found) just ABORT = 
>> 0 is set.
>>
>> Is this a good idea or did I break some best practices?
>>
>> 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
>> _______________________________________________
>> 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
>
>
>
> ----------------------------------------------------------------------
> ------
> --
> 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



------------------------------------------------------------------------
------
The Palm PDK Hot Apps Program offers developers who use the Plug-In
Development Kit to bring their C/C++ apps to Palm for a share of $1
Million in cash or HP Products. Visit us here for more details:
http://ad.doubleclick.net/clk;226879339;13503038;l?
http://clk.atdmt.com/CRS/go/247765532/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
</pre>
<BR style="font-size:4px;">
<a href = "http://www.sdl.com";><img src="http://www.sdl.com/images/email 
logo_150dpi-01.png" alt="www.sdl.com" border="0"/></a>
<BR>
<font face="arial"  size="2" "><a href = "http://www.sdl.com"; 
style="color:005740; font-weight: bold">www.sdl.com</a>
<BR>
<BR>
<font face="arial"  size="1" color="#736F6E">
<b>SDL PLC confidential, all rights reserved.</b>
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.<BR>
SDL PLC is a public limited company registered in England and Wales.  
Registered number: 02675207.<BR>
Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, 
UK.
</font>



------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share 
of $1 Million in cash or HP Products. Visit us here for more details:
http://ad.doubleclick.net/clk;226879339;13503038;l?
http://clk.atdmt.com/CRS/go/247765532/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to