2

为 Windows 服务创建部署项目需要哪些必要项目?在安装新版本之前,我需要卸载以前版本的服务。

4

5 回答 5

1

MSDN 有一个关于创建 Windows 服务和安装程序的教程。

于 2009-05-14T01:25:06.200 回答
1

我将 NSIS 用于我的应用程序,而要安装服务,您只需使用 sc 命令:

ExecWait 'sc create MyService binpath= "$INSTDIR\MyService.exe"'
ExecWait 'sc start MyService'

对于卸载:

ExecWait 'sc stop MyService'
ExecWait 'sc delete MyService'

效果很好。

于 2009-05-14T01:29:16.970 回答
0

这几乎只是调用:

net stop "MyService"
intallutil.exe /u MyService.exe

// Copy your exe into place
installutil.exe MyNewService.exe

// optional
net start "MyService"

这将停止旧服务,将其卸载,然后将新服务复制到位,安装它,然后(可选)启动它。

大多数安装程序使这很容易。唯一的另一个“问题”是确保您的安装程序被限制安装到本地驱动器,而不是网络路径,如果要安装该服务以在启动时自动运行。

于 2009-05-14T00:30:54.783 回答
0
  1. 在 Visual Studio 中,转到服务项目中的服务文件(myservice.vb 或 myservice.cs)。

  2. 右键单击设计视图,然后选择属性。

  3. 在 Porperties 窗口的底部有一个 Add Installer 链接。点击它。

  4. 检查 ServiceInstaller 和 ServiceProcessInstaller 属性。

  5. 编译你的项目

  6. 要卸载以前的版本,请在命令提示符下运行:Installutil.exe /uc:\myfolder\myservicefile.exe

  7. 要安装,请在命令提示符下运行:Installutil.exe c:\myfolder\myservicefile.exe

而已。

Installutil.exe 位于框架文件夹中,位于 Windows 目录的某个位置。它不必包含在您的项目中。

于 2009-05-14T00:52:07.260 回答
0

如果您已经创建了安装程序,则无需为安装项目做太多额外的工作。它可以让你直接从 Visual Studio 中安装和卸载。网上有很好的教程。

您将遇到的 2 个与服务相关的问题,以及如何解决这些问题:

  • 您卸载了一项服务,但无法重新安装它,因为您收到错误消息表明该服务正在等待删除并且需要重新启动。=> 关闭 Windows 服务管理器。它将释放所有引用,您可以重新安装您的服务。

  • 您在卸载之前删除了服务可执行文件,现在您无法“卸载”它来清理注册表。=> 除了完全避免这种情况外,我对此没有解决方案。

于 2009-05-14T01:49:35.283 回答