burn bootstrapper/wix中有意义的错误/失败消息

burn bootstrapper/wix中有意义的错误/失败消息,wix,bootstrapper,wix3.10,Wix,Bootstrapper,Wix3.10,如果在使用burn bootstrapper安装时出现任何故障,我将尝试提供定制的/有意义的错误消息 关于安装程序的简短介绍。我使用的是burn引导程序,它有链式MSI包(3)。MSI包在c#中具有自定义操作。我正在使用本地化wxl。下面是故障部分,请参阅突出显示的自定义消息 <Page Name="Failure"> <Text Name="FailureHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" Hide

如果在使用burn bootstrapper安装时出现任何故障,我将尝试提供定制的/有意义的错误消息

关于安装程序的简短介绍。我使用的是burn引导程序,它有链式MSI包(3)。MSI包在c#中具有自定义操作。我正在使用本地化wxl。下面是故障部分,请参阅突出显示的自定义消息

<Page Name="Failure">
<Text Name="FailureHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureHeader)</Text>
<Text Name="FailureInstallHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureInstallHeader)</Text>
<Text Name="FailureUninstallHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureUninstallHeader)</Text>
<Text Name="FailureRepairHeader" X="11" Y="80" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureRepairHeader)</Text>
<Hypertext Name="FailureLogFileLink" X="11" Y="121" Width="-11" Height="42" FontId="3" TabStop="yes" HideWhenDisabled="yes">#(loc.FailureHyperlinkLogText)</Hypertext>
<Hypertext Name="FailureMessageText" X="22" Y="163" Width="-11" Height="51" FontId="3" TabStop="yes" HideWhenDisabled="yes" ></Hypertext>
<Hypertext Name="CustomMessage" X="22" Y="163" Width="-11" Height="51" FontId="3" TabStop="yes" HideWhenDisabled="yes" >[CustomMessage]</Hypertext>
<Text Name="FailureRestartText" X="11" Y="-51" Width="400" Height="34" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureRestartText)</Text>
<Button Name="FailureRestartButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.FailureRestartButton)</Button>
<Button Name="FailureCloseButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.FailureCloseButton)</Button>
从@RobMensching的这篇文章中,有一种方法可以做到这一点。但不幸的是,要实现它,您必须深入研究代码

您的可执行文件可以实现“嵌入式刻录协议”来发送 丰富的进度和错误消息。它根本没有文档记录,所以您可以 需要通过Burn代码查看协议,但它就在那里 而且会给你想要的东西“bundlerunner”csproj in WiX源代码可能也会有所帮助。”


这里讨论了与WiX引导程序通信的两种不同方法。希望您可以从这开始。

只有在运行非MSI软件包时,才需要使用ISIAH4110答案中的“嵌入式刻录协议”。Burn使用MSIAPI获取有意义的错误消息。我对如何从自定义操作一直到引导程序应用程序(BA)获取消息的细节了解不够,但MSI属性是MSI的一种方法。BA将通过IBootstrapperApplication接口从引擎的回调中获取此信息。我不想编写自定义BA,因为WixStandardBootstrapperApplication.RtfLicense工作正常。如果我选择了自定义BA,那么还有什么方法可以继续吗?@Amanto你成功地做到了吗?
 <Variable Name="CustomMessage" Value="Hi"/>
 <MsiProperty Name="CustomMessage" Value="[CustomMessage]"/>
session["CustomMessage"]="Please enter valid details";