WiX CLR CustomAction有时无法记录

时间:2011-12-07 16:20:02

标签: wix windows-installer

在我的WiX项目中,我在同一个DLL中有两个自定义操作。两者都是用C#编写的。

第一个列举了计算机上可用的IIS站点。它在Windows Installer对话框之前运行。

第二个在“选择哪个网站”对话框之后运行,即在按下“下一步”的情况下在对话框流程中运行。

第一个很好地记录到MSI-log文件 第二个没有任何记录。

为什么在对话框部分期间无法自定义操作日志? (对话框部分的其余部分按预期记录。)
我可以做些什么来启用此日志记录吗?

2 个答案:

答案 0 :(得分:2)

使用DoAction控件事件调用MSI日志时,自定义操作无法写入MSI日志。这是MSI限制。

答案 1 :(得分:0)

这是权限问题。

IIS网站枚举需要管理员权限,因此第一个自定义操作在提升的进程中运行。您的第二个自定义操作在非提升的进程中运行,因此它没有足够的权限来写入您的日志。

如果您在每个用户位置创建日志,例如当前用户桌面,则第二个操作将成功写入日志。

解决方案是使用提升的流程进行第二次自定义操作。另一种解决方案是始终在每个用户位置创建日志。