【问题标题】:How can I overwrite an error message occured on custom action如何覆盖自定义操作中出现的错误消息
【发布时间】:2014-05-07 07:59:54
【问题描述】:
我通过自定义操作触发了一个 c# 应用程序:
在失败的情况下,我的应用程序告诉 Install Shield 使用退出代码中止安装过程:
static void Main(string[] args)
{
if(false)
{
Environment.ExitCode = 1;
}
}
使用这种方法,Install shield 的设置会显示一条如预期的错误消息:
如何用自定义文本覆盖该错误消息?
【问题讨论】:
标签:
installshield
installshield-le
【解决方案1】:
从这里的字里行间看,您的自定义操作似乎启动了一个 EXE。如果是这样,就没有办法按照你的要求去做。您可以在返回非零退出代码之前显示来自 EXE 的消息,但 Windows Installer 仍会显示错误 1722 消息。
如果您可以改为从 DLL 运行函数,则您有更多选择。除了返回错误之外,您还可以设置属性(假设这是一个立即模式操作),并且可以使用这些属性来做进一步的事情,例如显示另一个对话框,或者在没有错误 1722 消息的情况下退出安装。我不认为限量版中提供了所有必要的配置选项——你当然不能在 LE 中编辑对话框——所以要做到这一切,你必须改用功能更强大的工具(包括专业版或选项来自其他供应商)。