如果我有一个配置错误的MSI(比如一个util上的XPath:XmlFile元素不正确)并且我只运行MSI,我会得到一个很好的描述性错误,说明我做错了(在路径X找不到元素。 ..)在它回滚安装并进入结束屏幕之前。
如果我现在将MSI作为自定义BA的一部分运行,我将丢失此错误信息。我在ExecutePackageComplete的处理程序中尝试了以下内容:
function filterData($params)
但那只是给了我一些关于烟斗的东西。
string errorMessage = new Win32Exception(Marshal.GetLastWin32Error()).Message;
Gives"发生致命错误" (或类似的东西)。
我希望获得完整的描述性错误消息,因此无需自行运行MSI就可以更轻松地调试失败。如何在我的自定义BA中收到该错误消息?
答案 0 :(得分:0)
string errorMessage = new Win32Exception(e.Status).Message;
对象上有一个名为BootstrapperApplicaton
的事件。这会引起链式MSI的错误(除了我确定的其他事情之外)。
有用的错误消息位于其事件args的Error
属性中:
ErrorMessage
引发错误的包也在 private void HandleError(object sender, ErrorEventArgs e)
{
string errorMessage = e.ErrorMessage;
}
属性中。