如何:安装和卸载 Windows 服务

注意

本文不适用于 .NET 中的托管服务。 有关使用 Microsoft.Extensions.Hosting.BackgroundService 的 Windows 服务上的最新内容和辅助角色服务模板,请参阅:

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

警告

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

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

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

提示

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

使用 InstallUtil.exe 实用程序安装

  1. 打开“VS 开发人员命令提示”。

    从“开始”菜单中选择“所有应用”,展开“Visual Studio <版本>”,然后选择“VS 开发人员命令提示 <版本>”。

  2. 导航到你的项目的已编译可执行文件所在的目录。

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

    installutil <yourproject>.exe
    

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

使用 InstallUtil.exe 实用程序卸载

  1. 打开“VS 开发人员命令提示”。

    从“开始”菜单中选择“所有应用”,展开“Visual Studio <版本>”,然后选择“VS 开发人员命令提示 <版本>”。

  2. 从命令提示符运行 InstallUtil.exe 并使用 /uninstall 选项和你的项目的可执行文件:

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

使用 PowerShell 安装

  1. 从“开始”菜单中,搜索“Windows PowerShell”,然后选择它。

  2. 导航到你的项目的已编译可执行文件所在的目录。

  3. 运行 New-Service cmdlet,并将一个服务名称和你的项目的可执行文件作为参数:

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

使用 PowerShell 卸载

  1. 从“开始”菜单中,搜索“Windows PowerShell”,然后选择它。

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

    Remove-Service -Name "YourServiceName"
    

    注意

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

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

    sc.exe delete "YourServiceName"
    

请参阅