【问题标题】:windows service uninstallationwindows服务卸载
【发布时间】:2018-02-01 02:43:23
【问题描述】:

我创建了一个简单的 Windows 服务。并将设置项目添加到此解决方案中。我可以成功构建服务和设置项目。同样在构建之后,我可以使用成功创建的 MSI 文件。 我可以成功安装 Windows 服务并可以实现该功能。

但现在我想卸载该服务并从添加/删除程序中删除该服务。该服务从添加/删除程序中卸载。 但我仍然可以在服务列表中看到该服务。创建 Windows 服务设置时是否需要添加任何内容?

【问题讨论】:

    标签: windows-services vb.net-2010 visual-studio-setup-proje


    【解决方案1】:

    当您创建安装项目时,您可以设置外部命令在安装前运行:

    1. 右键单击 Visual Studio 中的 SetupProject 并选择 "custom 行动” 从视图。
    2. 您会发现这些自定义操作:安装、提交、回滚和卸载。
    3. 依次右键单击每个这些操作,然后添加一个 自定义操作
    4. 这样做后,您将在项目窗口中找到一个选择项。
    5. 在窗口中,选择下拉菜单中的应用程序文件夹。这将列出 Windows 服务的主要输出,选择它并点击ok
    6. 保存并构建设置项目。

    【讨论】:

    • 是的,但这是我必须在外部完成的任务。当我卸载服务时,它应该完全卸载服务。有什么我可以在设置项目中实现的。
    • 谢谢科比。这解决了我的问题。所以将其标记为答案。但是,在单击“确定”作为主要输出时,警报出现“操作无法完成”。发生异常'
    • 它是否提供了更多细节?异常来自哪里?
    • 在您的第 5 步中,当我单击“确定”按钮时,我会收到警报。但有时不是每次都来。因此,当它没有出现时,在左侧面板中添加了重复操作。我可以说它现在有效。
    【解决方案2】:

    使用服务安装程序类卸载服务时的典型问题是安装项目不提供服务的自动停止。因此,卸载会将服务标记为删除。它无法删除它,因为它不会阻止它。如果您重新启动系统,您可能会看到该服务最终消失。

    典型的解决方案是覆盖 Uninstall 自定义操作并添加您自己的代码以显式停止服务,然后 base.Uninstall() 将能够将其删除。

    更好的解决方案是使用另一个支持内置 Windows Installer 功能的工具,无需任何代码(ServiceInstall 和 ServiceControl 表)即可执行此操作。

    【讨论】:

      猜你喜欢
      • 2011-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 2010-09-18
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多