在 c# 中使用 .exe 路径安装 windows 服务
installing a windows service with .exe path in c#
我需要以编程方式安装服务(甚至可以使用 InstallUtil 完成,但不能手动完成)
我有以下代码,但不知道如何正确执行,因为该代码需要一些我不知道的 class 信息,我需要知道如何使用它才能执行它使用 .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);
}
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();
}
}
我就是这样解决的
我需要以编程方式安装服务(甚至可以使用 InstallUtil 完成,但不能手动完成)
我有以下代码,但不知道如何正确执行,因为该代码需要一些我不知道的 class 信息,我需要知道如何使用它才能执行它使用 .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);
}
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();
}
}
我就是这样解决的