自安装Windows服务将安装日志留在后面。如何禁用此功能?

时间:2017-06-11 17:06:21

标签: c# .net windows service windows-services

我使用以下代码自行安装Windows服务(此代码位于Program.cs中)。当我使用" servicename.exe - install"服务安装得很好,但是有些安装日志会被遗忘。 servicename.InstallLog和InstallUtil.InstallLog。有没有办法完全禁用这些文件的记录?

if (Environment.UserInteractive)
        {
            string parameter = string.Concat(args);
            switch (parameter)
            {
                case "--install":
                    ManagedInstallerClass.InstallHelper(new[] { Assembly.GetExecutingAssembly().Location });
                    break;
                case "--uninstall":
                    ManagedInstallerClass.InstallHelper(new[] { "/u", Assembly.GetExecutingAssembly().Location });
                    break;
            }
        }
        else
        {
            ServiceBase[] servicesToRun = new ServiceBase[]
            {
         new Service1()
            };
            ServiceBase.Run(servicesToRun);
        }

1 个答案:

答案 0 :(得分:1)

ManagedInstallerClass.InstallHelper处理Installutil.exe(安装程序工具)的功能(请参阅https://msdn.microsoft.com/en-us/library/system.configuration.install.managedinstallerclass(v=vs.110).aspx)。根据文档(https://docs.microsoft.com/en-us/dotnet/framework/tools/installutil-exe-installer-tool

,InstallUtil接受参数来重定向或禁用日志

您可以尝试更改此类InstallHelper参数以禁用日志。似乎工作正常:

string parameter = string.Concat(args);
switch (parameter)
{
    case "--install":
        ManagedInstallerClass.InstallHelper(new[] { "/LogFile=", "/LogToConsole=true", Assembly.GetExecutingAssembly().Location});
        break;
    case "--uninstall":
        ManagedInstallerClass.InstallHelper(new[] { "/u", "/LogFile=", "/LogToConsole=true", Assembly.GetExecutingAssembly().Location });
        break;
}