WiX的安装程序:登录由DoAction

问题描述:

我写的WiX安装一些自定义操作运行CustomAction消息。 我读here,如果作为单击按钮(DoAction)的结果运行该操作,C#自定义操作中的Session.Log不起作用。 MSDN说you can use the Message Method,所以我试着用Session.Message:WiX的安装程序:登录由DoAction

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

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

请帮忙吗?

一般来说,这是一个已知的问题与底层的Windows安装程序:

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

似乎Server 2003后,消息方法可以工作,但说实话使用脚本自定义操作年前,我停止了,所以它不是我的选择。我使用使用MsiProcessMessage的C#/ DTF。

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

+0

这是我引用的链接。你能扩展“我使用C#/ DTF使用MsiProcessMessage”。请? – peval27

+0

DTF是WiX的一项功能,可让您编写托管自定义操作。请参阅:http://blog.deploymentengineering.com/2008/05/deployment-tools-foundation-dtf-custom.html –

+0

Session类的来源位于:https://github.com/wixtoolset/wix3/blob /develop/src/DTF/Libraries/WindowsInstaller/Session.cs你可以在第210行看到他们使用MsiProcessMessage() –