如何:安装和卸载 Windows 服务

警告

此文档不适用于 Windows 服务的最新版本。 有关使用 BackgroundService 的 Windows 服务上的最新内容和辅助角色服务模板,请参阅:

如果正使用 .NET Framework 开发 Windows 服务,可以使用 InstallUtil.exe 命令行实用工具或 PowerShell 快速安装服务应用。 如果开发人员希望发布用户可安装和卸载的 Windows 服务,则可以使用免费的 WiX 工具集高级安装程序InstallShield 等商业工具。 有关详细信息,请参阅创建安装程序包(Windows 桌面)

警告

如果要从计算机中卸载服务,请勿按照本文中的步骤进行操作。 而是找出安装了该服务的程序或软件包,然后在“设置”中选择“应用”来卸载该程序。 许多服务是 Windows 不可或缺的部分;如果删除它们,可能会导致系统不稳定。

要使用本文中的步骤,首先需要将服务安装程序添加到 Windows 服务。 有关详细信息,请参见演练:创建 Windows 服务应用

无法通过按 F5 从 Visual Studio 开发环境直接运行 Windows 服务项目。 必须先在项目中安装服务,然后才能运行该项目。

提示

可以使用“服务器资源管理器”验证是否已安装或卸载服务。

使用 InstallUtil.exe 实用程序安装

  1. 从“开始”菜单中选择“Visual Studio <version>”目录,然后选择“VS <version> 开发人员命令提示” 。

    出现“Visual Studio 开发人员命令提示”。

  2. 访问你的项目的已编译可执行文件所在的目录。

  3. 将项目的可执行文件作为参数,通过命令提示运行 InstallUtil.exe:

    installutil <yourproject>.exe
    

    如果使用的是 Visual Studio 开发人员命令提示,InstallUtil.exe 已经在系统路径上。 如果不在,可以将其添加到该路径,或使用完全限定的路径来调用它。 此工具随 .NET Framework 安装在 %WINDIR%\Microsoft.NET\Framework[64]\<framework_version> 中。

    例如:

    • 对于 32 位版的 .NET Framework 4 或 4.5 以及更高版本,如果 Windows 安装目录是 C: \ Windows,则默认路径是 C:\Windows\ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe 。
    • 对于 64 位版的 .NET Framework 4 或 4.5 以及更高版本,默认路径是 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe。

使用 InstallUtil.exe 实用程序卸载

  1. 从“开始”菜单中选择“Visual Studio <version>”目录,然后选择“VS <version> 开发人员命令提示” 。

    出现“Visual Studio 开发人员命令提示”。

  2. 将项目的输出作为参数,通过命令提示运行 InstallUtil.exe:

    installutil /u <yourproject>.exe
    
  3. 删除服务的可执行文件后,该服务可能仍然会出现在注册表中。 如果发生这种情况下,请使用命令 sc delete 从注册表中删除服务的条目。

使用 PowerShell 安装

  1. 从“开始”菜单中,选择“Windows PowerShell”目录,然后选择“Windows PowerShell”。

  2. 访问你的项目的已编译可执行文件所在的目录。

  3. 运行 New-Service cmdlet,并将服务名称和项目输出作为参数:

    New-Service -Name "YourServiceName" -BinaryPathName <yourproject>.exe
    

使用 PowerShell 卸载

  1. 从“开始”菜单中,选择“Windows PowerShell”目录,然后选择“Windows PowerShell”。

  2. 运行 Remove-Service cmdlet,并将服务名称作为参数:

    Remove-Service -Name "YourServiceName"
    

    备注

    必须安装 PowerShell 6 或更高版本才能使用此 cmdlet。 有关如何更新 PowerShell 的信息,请参阅在 Windows 上安装 PowerShell

  3. 删除服务的可执行文件后,该服务可能仍然会出现在注册表中。 如果发生这种情况下,请使用命令 sc delete 从注册表中删除服务的条目。

    sc.exe delete "YourServiceName"
    

请参阅