2013-07-01 41 views
1

我有一个MSI包,在产品安装过程中执行许多延迟的自定义操作。如果其中一个自定义操作失败,则安装以标准的“安装被取消...”窗口结束。这个“取消”的文本对最终用户来说非常混乱,我想修改它以防我的自定义操作失败,我知道什么是问题。MSI:如何有条件地更改安装失败文本?

我试图在ExecuteAction之后排队自定义操作,但遇到问题:此操作仅在安装成功时执行,但不会在安装失败时执行!之后,我尝试将自定义操作排队,以便在安装失败时通过为其分配序号-3来执行。它被执行 - 但在服务器上下文中,所以它不能更改在客户端上下文中显示的文本!

有没有办法改变这个文本?我需要在安装失败后在客户端上下文(即时模式)中执行的自定义操作。

回答

1

您是否尝试过使用Error Table? (添加自己的错误描述成此表并返回它的代码)

+0

哇,这看起来很有希望。如果我的自定义操作失败,如何设置自己的错误代码? – grigoryvp

+0

@EyeofHell确切的细节取决于您的自定义操作所使用的语言(C#或C++?),但基本上您需要格式化错误记录 – JohnL

+0

@JohnL您能为C++展示示例吗?自定义操作返回0/1/2/3取决于错误/成功/取消/ whtever,我无法弄清楚如何将自定义操作,错误表和静态文本连接到最后一个对话框(此文本内置到MSI,我已经检查过使用WIX生成的微软MSI包和软件包 - 我无法弄清楚错误表是如何改变它的) – grigoryvp

1

采取维克斯源看看src\ext\UIExtension\wixlib\WixUI_en-us.wxl
查找文本字符串的ID和添加(例如进入Product.wxs):

<String Id="STRING_ID_HERE">New text</String> 
+0

你是什么意思,并添加'?我需要添加哪些内容? – grigoryvp

+0

我的意思是把它放在'Product.wxs' – Dimiano

+0

不幸的是,这不会工作 - 我需要改变文本'条件',只有在我的自定义操作失败的情况下。 – grigoryvp