[wix-users] How to show the result of a CA on a dialog?

Fyodor Koryazhkin fyodorkor at gmail.com
Tue Jan 7 06:08:01 PST 2020


Hi,
Add SAMWINERRORMESSAGE to SecureCustomProperties property.
<Property Id=" SAMWINERRORMESSAGE" Secure="yes" />
You set the property in Execute sequence but call the dialog in InstallUI
sequence.

On Tue, Jan 7, 2020 at 3:18 PM Peter Schraffl via wix-users <
wix-users at lists.wixtoolset.org> wrote:

> I have now retried it - without success, maybe someone can give me a hint:
>
> - I customized the FatalError dialog like so (added [SAMWINERRORMESSAGE]
> to the "Text" attribute of the "Description" element):
>         <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
>            <Fragment>
>               <UI>
>                  <Dialog Id="SamwinFatalError" Width="370" Height="270"
> Title="!(loc.FatalError_Title)">
>                     ...
>                     <Control Id="Description" Type="Text" X="135" Y="70"
> Width="220" Height="80" Transparent="yes" NoPrefix="yes"
> Text="!(loc.FatalErrorDescription1)   [SAMWINERRORMESSAGE]
> !(loc.FatalErrorDescription2)" />
>                  </Dialog>
>
>                  <InstallUISequence>
>                     <Show Dialog="SamwinFatalError" OnExit="error"
> Overridable="yes" />
>                  </InstallUISequence>
>
>                  <AdminUISequence>
>                     <Show Dialog="SamwinFatalError" OnExit="error"
> Overridable="yes" />
>                  </AdminUISequence>
>
>               </UI>
>            </Fragment>
>         </Wix>
>
> - replaced the reference to "FatalError" in the UI.wxs with
> "SamwinFatalError"
>         <DialogRef Id="SamwinFatalError" />
>
> - changed the custom action to set the property with
>                session["SAMWINERRORMESSAGE"] = message.ToString();
>
> According to the msi log the property is set and the SamwinErrorDialog is
> shown but the message itself is not - [SAMWINERRORMESSAGE] is replaced with
> an empty string.
>         ...
>         MSI (s) (F4!80) [14:11:15:646]: PROPERTY CHANGE: Adding
> SAMWINERRORMESSAGE property. Its value is 'Missing Windows Features!
> What am I missing?...
>         ...
>         MSI (c) (40:34) [14:11:15:771]: Doing action: SamwinFatalError
>         Action 14:11:15: SamwinFatalError.
>         Action start 14:11:15: SamwinFatalError.
>         Action 14:11:15: SamwinFatalError. Dialog created
>
> Kind regards
> PETER SCHRAFFL
>
> -----Original Message-----
> From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of
> Peter Schraffl via wix-users
> Sent: Dienstag, 7. Jänner 2020 11:53
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Cc: Peter Schraffl <Schraffl at telecomsoftware.com>
> Subject: Re: [wix-users] How to show the result of a CA on a dialog?
>
> Thanks for hints.
>
> Actually I have already tried the approach with the property and modifying
> the FatalError dialog but maybe I did something wrong. Will give it another
> try.
>
> Kind regards
> PETER SCHRAFFL
>
> -----Original Message-----
> From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of Nir
> Bar via wix-users
> Sent: Dienstag, 7. Jänner 2020 10:36
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Cc: Nir Bar <nir.bar at panel-sw.com>
> Subject: Re: [wix-users] How to show the result of a CA on a dialog?
>
> You can use my WiX extension to enable Windows Features:
>
> https://www.nuget.org/packages/PanelSwWixExtension/
>
> <Component>
>
> <panelsw:Dism EnableFeatures="IIS"/>
>
> </Component>
>
>
>
>
>
> As for the FatalError dialog, you can edit it to present a property, say
> "MY_LONG_ERROR"
>
> Then in the CA set this property to the error message.
>
>
>
>
>
> --
>
> Nir Bar
>
> WiX Expert
>
>
>
>
>
>
> ---- On Tue, 07 Jan 2020 10:48:44 +0200 Peter Schraffl via wix-users <
> wix-users at lists.wixtoolset.org> wrote ----
>
>
>
> Hi all,
>
> our installer requires some features (basically IIS features) to be
> installed and fails if those are not installed on the system. In such cases
> the FatalError dialog is shown which does not provide any useful
> information about the root cause of the issue.
> That’s why we have implemented a C# custom action which does some checks.
> If the checks fail, a message box with a dynamically generated text is
> shown via the session.Message(…) function before the CA returns an error
> result.
> This is working fine so far.
>
> Anyways we would prefer to show the message on the FatalError dialog (or
> less preferred on its own dialog). Mostly because the generated message
> might be pretty long and the length of the text shown in the message box is
> limited, causing the message to be cut off.
>
> So the general question is: how can the (dynamically generated) value of a
> property (the “result” of a C# custom action) be shown on a dialog?
> Preferably on the FatalError dialog.
>
> Any hints would be appreciated.
> Thanks in advance and a happy new year.
>
> Kind regards
> Schraffl Peter
>
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/



-- 
Regards,
Fyodor Koryazhkin..



More information about the wix-users mailing list