为Windows服务创建部署项目需要哪些必要的项目?在安装新版本之前,我需要卸载以前版本的服务。
答案 0 :(得分:1)
MSDN在创建Windows服务和安装程序时有tutorial。
答案 1 :(得分:0)
这几乎只是打电话:
net stop "MyService"
intallutil.exe /u MyService.exe
// Copy your exe into place
installutil.exe MyNewService.exe
// optional
net start "MyService"
这将停止旧服务,卸载它,然后将新副本复制到位,安装它,并(可选)启动它。
大多数安装人员都非常容易。唯一的另一个“问题”是确保安装程序仅限于安装到本地驱动器而不是网络路径,如果要安装该服务以在启动时自动运行。
答案 2 :(得分:0)
在Visual Studio中,转到服务项目中的服务文件(myservice.vb或myservice.cs)。
右键单击设计视图,然后选择属性。
在Porperties窗口的底部有一个Add Installer链接。点击它。
查看ServiceInstaller和ServiceProcessInstaller属性。
编译项目
要卸载以前的版本,请在命令提示符下运行:Installutil.exe / u c:\ myfolder \ myservicefile.exe
安装,在命令提示符下运行:Installutil.exe c:\ myfolder \ myservicefile.exe
就是这样。
Installutil.exe位于Windows目录中的某个框架文件夹中。它不必包含在您的项目中。
答案 3 :(得分:0)
我将NSIS用于我的应用程序,而对于安装服务,您只需使用sc命令:
ExecWait 'sc create MyService binpath= "$INSTDIR\MyService.exe"'
ExecWait 'sc start MyService'
对于卸载:
ExecWait 'sc stop MyService'
ExecWait 'sc delete MyService'
效果很好。
答案 4 :(得分:0)
如果您已经创建了安装程序,则安装项目没有太多额外的工作要做。它允许您直接从Visual Studio安装和卸载。网上有很好的教程。
您将遇到的两个与服务相关的问题,以及如何解决这些问题:
您卸载了某项服务,但无法重新安装,因为您收到服务正在等待删除的错误消息,并且需要重新启动。 =>关闭Windows服务管理器。它将发布任何引用,您可以重新安装您的服务。
您在卸载服务可执行文件之前删除了它,现在您无法“卸载”它以清理注册表。 =>除了完全避免这种情况之外,我没有解决方案。