I have reached a solution that makes everyone here happy. It incorporates
what you suggest but adds a small detail. I cannot display a dialog from
the ARP uninstall, but I can display a dialog from my custom action that
informs the user of what is happening. It offers two buttons: Retry and
Exit. If they Retry (hopefully after they shutdown the program), the custom
action is run again displaying the same dialog if the program is still
running. If the user chooses to Exit, ERROR_INSTALL_USEREXIT is passed back
to the installer session (as you suggested) and the uninstall aborts
peacefully.
Thanks for your thoughts on this.
On 1/26/07, John Lalande <[EMAIL PROTECTED]> wrote:
>You didn't answer my question -- you want the uninstall to be canceled;
>you just don't like the "fatal error" message, right?
That's correct, I don't like the "fatal error" message. And neither does
my supervisor.
I understand the solution you are proposing but that user experience is
actually worse. As a user, I would be very annoyed if the uninstall simply
stopped with the message "User
canceled installation" if I had not done anything to cancel it.
Currently, the user gets the launch condition message so they know what went
wrong and how to fix it. The annoying part is the fatal error message that
follows.
I think that I am going to have to tell my boss that we'll have to live
with the fatal error message. It is benign and the user knows what they
need to do to uninstall. It just looks sloppy.
Which leads me to wonder why launch conditions would ever be run on
uninstall if a failure in the ARP shows the fatal error message after the
launch condition message. They could be very useful but informing the user
of a non-existent fatal error is not very pleasant behavior.
John
On 1/26/07, Bob Arnson <[EMAIL PROTECTED]> wrote:
>
> John Lalande wrote:
> > I understand where they might be useful; that is why I am using one.
> > But my experiments show that a failing launch condition during
> > uninstall from ARP always shows the fatal error message after
> > displaying the launch condition message.
>
> Correct, that's how ARP works. Uninstalling from ARP shows only a basic
> UI so if something fails, your MSI package can't display authored UI. So
> ARP shows a message based on the MSI error code. A failed launch
> condition returns ERROR_INSTALL_FAILURE, which is "A fatal error
> occurred during installation." That's why I suggested a CA that returned
> ERROR_INSTALL_USEREXIT, which presumably would show the message "User
> cancelled installation." ARP doesn't let you customize the message
> that's shown, for better or for worse.
>
> You didn't answer my question -- you want the uninstall to be canceled;
> you just don't like the "fatal error" message, right?
>
> > Which leads me to your suggestion regarding the custom action that I
> > run. I have it set such that the return value is ignored.
>
> Don't set the continue attribute -- you want the return value to be
> acted on.
>
> --
> sig://boB
> http://bobs.org
>
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users