繁体   English   中英

删除安装程序的Windows服务不起作用

[英]Deleting windows service for installer does not work

我正在尝试卸载Windows服务,但收到以下消息。

在此处输入图片说明

所以我认为确定已删除。 但是,当我检查服务窗口时,它仍然存在。有人知道我做错了吗? 我将在下面附加我的代码。

[RunInstaller(true)]
public partial class ProjectInstaller : System.Configuration.Install.Installer
{
    public ErrorLogging errLog { get; set; }
    public ProjectInstaller()
    {
        errLog = new ErrorLogging();
        InitializeComponent();
    }

    protected override void OnBeforeInstall(IDictionary savedState)
    {
        base.OnBeforeInstall(savedState);

        try
        {
              /* Some folder creation happens here */
        }
        catch (InstallException ex)
        {
            errLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Creating directories failed");
        }
    }
    public override void Install(IDictionary stateSaver)
    {
        base.Install(stateSaver);
    }

    public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);
    }
}

我试过的

  • 重新启动
  • 删除安装程序类,但随后MSI安装程序不执行我的检查

MSI不会进行任何检查,因为您将无法进行处理且未使用本机MSI功能。 如果您使用内置的ServiceInstall和ServiceControl表而不是重新发明轮子,则安装程序将更加简单可靠。

假设您的问题与代码无关,而您只是想从该计算机上删除服务:

  1. 提升的命令提示符可能需要(如果你不知道如何打开一个, 这里是如何 )。
  2. 如果这样做没有帮助,请执行服务删除命令:

    sc delete ServiceName

从您的代码看来,您只想卸载,但是如果使用InstallUtil,则无论出于何种原因它都会失败。

但是还有其他解决方案来删除服务:

选项1:(sc.exe)

打开命令提示符(您可能需要以管理员身份打开它并执行:

sc delete ServiceName

注意:如果您的服务名称包含一些空格,则需要将其包装:

sc delete "My service name with spaces"

选项2:(Regedit)

打开注册表并导航到: HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Services

在此处找到您的服务,将其删除并重新启动系统。

这是不使用InstallUtil即可删除服务的2个选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM