【问题标题】:installing a windows service with .exe path in c#在 C# 中使用 .exe 路径安装 Windows 服务
【发布时间】:2016-04-05 10:03:36
【问题描述】:

我需要以编程方式安装服务(它甚至可以使用 InstallUtil 完成,但不能手动完成)

我有以下代码,但无法弄清楚如何正确执行,因为该代码要求提供一些我不知道的类信息,我需要知道如何使用它才能使用 .exe 执行它。 代码如下:

public static void InstallService(string ExeFilename)
{
    System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename,null);
    Installer.UseNewContext = true;
    Installer.Install(null);
    Installer.Commit(null);
}

【问题讨论】:

  • 服务是否接收参数?
  • 这段代码适用于我拥有的一个简单的 Windows 服务。有什么问题?
  • System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename,null);那 null 代表什么?因为它说了一些关于命令行的东西。我需要它来处理服务的 .exe 路径
  • 它给你一个错误?什么错误?该 null 表示您没有传递命令。
  • 我必须调试整个东西才能检查路径和功能。一旦我得到那个功能,我会发布它给我的消息

标签: c# service installutil


【解决方案1】:
 public void InstallService(string ExeFilename)
        {
            try
            {
                System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename, null);
                Installer.UseNewContext = true;
                Installer.Install(null);
                Installer.Commit(null);
                DialogResult NovoDialog = new DialogResult();
                NovoDialog = MessageBox.Show("Deseja Iniciar o Serviço?", "Orca ++ Updater", MessageBoxButtons.YesNo);
                if (NovoDialog == DialogResult.Yes)
                {
                    ServiceController service = new ServiceController("OrcaService");
                    TimeSpan timeout = TimeSpan.FromMilliseconds(1500);
                    service.Start();
                    service.WaitForStatus(ServiceControllerStatus.Running, timeout);

                }
            }
            catch (Exception ex)
            {
                Erro NovoErro = new Erro();
                Program.Erro = ex.ToString();
                NovoErro.ShowDialog();
            }
        }

我就是这样解决的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多