在我的WiX项目中,我在同一个DLL中有两个自定义操作。两者都是用C#编写的。
第一个列举了计算机上可用的IIS站点。它在Windows Installer对话框之前运行。
第二个在“选择哪个网站”对话框之后运行,即在按下“下一步”的情况下在对话框流程中运行。
第一个很好地记录到MSI-log文件 第二个没有任何记录。
为什么在对话框部分期间无法自定义操作日志? (对话框部分的其余部分按预期记录。)
我可以做些什么来启用此日志记录吗?
答案 0 :(得分:2)
使用DoAction控件事件调用MSI日志时,自定义操作无法写入MSI日志。这是MSI限制。
答案 1 :(得分:0)
这是权限问题。
IIS网站枚举需要管理员权限,因此第一个自定义操作在提升的进程中运行。您的第二个自定义操作在非提升的进程中运行,因此它没有足够的权限来写入您的日志。
如果您在每个用户位置创建日志,例如当前用户桌面,则第二个操作将成功写入日志。
解决方案是使用提升的流程进行第二次自定义操作。另一种解决方案是始终在每个用户位置创建日志。