说,您在服务器上安装了自定义Windows服务。该服务是使用.NET编写的,它使用InstallUtil,MSI包或ManagedInstallerClass安装(如果它有所不同,请选择解决问题的那个)。通常,您需要对服务部署更改,当然您希望尽可能简化。
停止服务,替换.exe文件并重启服务是否“安全”?或者您是否必须卸载并重新安装新的.exe文件?如果将服务的“不断发展的”部分拆分为单独的程序集,会更容易吗?是否有任何工具或API可能对服务的开发或部署有帮助?
答案 0 :(得分:12)
我只是停止服务并替换exe;这样做是安全的。
您可以拥有它,以便您的服务开始加载模块,并以此方式开发您的系统;它可以工作,但它可能过于复杂,或者不是,取决于你究竟想要做什么。
答案 1 :(得分:5)
停止服务,更换EXE并重新启动它。这应该是您的安装程序的一部分。为了重新安装,将它分成单独的组件就是一个兔子洞。
答案 2 :(得分:2)
对于更新服务,我们要么使用MSI包(如果我们向客户提供安装程序),要么使用短脚本来处理停止和卸载旧版本的服务,然后复制,安装和启动新版本。
为了编写本地服务的部署脚本,您可以将net start
和net stop
等标准Windows命令与installutil
结合使用,以便进行远程部署。使用来自SysInternals的psexecute
和psservice
。