WiX安装程序:由DoAction运行的CustomAction中的日志消息

时间:2017-09-14 06:58:20

标签: c# logging wix windows-installer custom-action

我正在编写一个带有一些自定义操作的WiX安装程序。 我读了here,如果由于点击按钮(DoAction)而运行,则C#Custom Action中的Session.Log不起作用。 MSDN说you can use the Message Method,所以我尝试使用Session.Message:

var foo = new Record(1);
foo.SetString(0, "hello world");
session.Message(InstallMessage.ActionData, foo);

但即使使用VERBOSE = 1,我仍然看不到日志消息。 使用WiX Burn创建安装程序,因此没有单独的msi。

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

通常,这是基础Windows Installer的已知问题:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa368322(v=vs.85).aspx

似乎在Server 2003之后,Message方法可能有效,但老实说我几年前就停止使用脚本自定义操作,所以它不适合我。我使用C#/ DTF,它使用MsiProcessMessage。

通常的解决方法是利用属性更改记录的事实。只需设置一个未使用的属性,就可以在日志中获取数据。