从安装程序中写入InstallLog文件

4

如何从服务安装程序写入InstallLog?

我已经覆盖了我的类的OnBeforeInstall方法(它派生自System.Configuration.Install.Installer),现在我想写入安装程序日志。但我找不到任何可以让我这样做的东西。

Console.WriteLine会将内容写入控制台,但不会写入日志。


似乎是不可能的...至少我没有找到解决方案。这里是MSDN上的内容http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/f8ae093d-b70f-4230-9502-bb2007719395/。 - Mark Lakata
2个回答

4
据我所知,Installer类中有一个名为Context的属性。它的类型是InstallContext。该类型具有LogMessage()方法,我想这就是您需要的。请参见此文章以获取有关LogMessage()方法的更多信息。

这是你可以看到的,但是除非你将“InstallUtil.exe”作为父进程运行,否则LogMessage不起作用。如果使用MSI或MSIEXEC,则不会记录任何内容。 - Mark Lakata
1
如果您直接使用installutil,则此操作可以完成,但请注意,有2个日志InstallUtil.InstallLog和ServiceName.Service.InstallLog,您的消息将记录在第二个日志中。 - deafsheep

0
我刚刚创建了自己的日志。
public void SetupLog(string sLine) {
     using(StreamWriter w = File.AppendText("c:\\mysetup.log")) 
        w.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} {sLine}");
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接