从另一个应用程序安装Windows服务

时间:2014-06-01 10:52:30

标签: c# windows-services installation

在我的VS解决方案中,我有两个项目:一个Windows服务和一个带有一个表单和两个按钮的win应用程序(安装/卸载和启动/停止)。我跟随过Matt Davis教程

How to make a .NET Windows Service start right after the installation?

用于创建ProjectInstaller,现在我很困惑如何在按钮单击时实际启动安装,这是在另一个项目(win app)中。 我很感激任何帮助。

2 个答案:

答案 0 :(得分:0)

这是未经测试的,但如果您在win app中添加引用至System.Configuration.Install。此程序集包含要安装服务的所有代码。然后从win应用程序中的代码中添加如下内容:

public void InstallService(string pathToAssembly)
{
    System.Configuration.Install.ManagedInstallerClass.InstallHelper(new string[] { pathToAssembly });
}

要使用它,您只需要知道从exe继承的服务的ServiceBase文件的路径。

答案 1 :(得分:0)

我的教程适合从命令行安装服务,而不是从其他应用程序安装。也就是说,我认为这样做很容易(虽然我还没有测试过):

string pathToServiceExecutable = ...;  // specify the full path to your service
System.Diagnostics.Process.Start(pathToServiceExecutable, "-install");