C# WiX安装程序:在DoAction运行的CustomAction中记录消息
我正在编写一个带有一些自定义操作的WiX安装程序。 我读到C#自定义操作中的C# WiX安装程序:在DoAction运行的CustomAction中记录消息,c#,logging,wix,windows-installer,custom-action,C#,Logging,Wix,Windows Installer,Custom Action,我正在编写一个带有一些自定义操作的WiX安装程序。 我读到C#自定义操作中的Session.Log,如果该操作是由于单击按钮(DoAction)而运行的,则该操作不起作用。 MSDN是这么说的,所以我尝试了会话。消息: var foo = new Record(1); foo.SetString(0, "hello world"); session.Message(InstallMessage.ActionData, foo); 但即使使用VERBOSE=1,我仍然看不到日志消息。 安装程序是
Session.Log
,如果该操作是由于单击按钮(DoAction)而运行的,则该操作不起作用。
MSDN是这么说的,所以我尝试了会话。消息:
var foo = new Record(1);
foo.SetString(0, "hello world");
session.Message(InstallMessage.ActionData, foo);
但即使使用VERBOSE=1,我仍然看不到日志消息。
安装程序是用wixburn创建的,因此没有单独的msi
请提供帮助?通常,这是底层Windows Installer的一个已知问题: 看起来在Server2003之后,Message方法可能会起作用,但老实说,我在几年前就停止使用脚本自定义操作了,所以这不是我的选择。我使用C#/DTF,它使用MsiProcessMessage
通常的解决方法是利用记录属性更改这一事实。只要多次设置一个未使用的属性,您的数据就会出现在日志中。通常,这是底层Windows Installer的一个已知问题: 看起来在Server2003之后,Message方法可能会起作用,但老实说,我在几年前就停止使用脚本自定义操作了,所以这不是我的选择。我使用C#/DTF,它使用MsiProcessMessage
通常的解决方法是利用记录属性更改这一事实。只要多次设置一个未使用的属性,您的数据就会出现在日志中。这就是我引用的链接。请您扩展一下“我使用C#/DTF,它使用MsiProcessMessage。”好吗?DTF是WiX的一项功能,允许您编写托管自定义操作。请参阅:会话类的源代码在这里:您可以在第210行看到它们使用MsiProcessMessage()RemotableNativeMethods,可以在这里找到:尽管有MSDN文档,我认为所有路径都指向MsiProcessMessage。这是我引用的链接。请您扩展一下“我使用C#/DTF,它使用MsiProcessMessage。”好吗?DTF是WiX的一项功能,允许您编写托管自定义操作。请参阅:会话类的源代码在这里:您可以在第210行看到它们使用MsiProcessMessage()RemotableNativeMethods,可以在这里找到:尽管有MSDN文档,我认为所有路径都指向MsiProcessMessage。