MSBuild。检查是否安装了windows服务
我是 msbuild 的新手,目前我正在尝试创建 msbuild 脚本,将我的 C# windows 服务部署到远程测试服务器。
我正在考虑使用 sc.exe 实用程序来实现此目的。阅读相关内容后,我没有找到一种方法来检查远程服务器上是否安装了 Windows 服务。如果安装了该服务,那么我需要停止它并更新必要的文件,否则我需要注册该服务。
PS 对于发布版本,我计划使用 WiX 来创建 MSI 包。
I'm new to msbuild and currently I'm trying to create msbuild script that will deploy my C# windows service to remote test server.
I'm thinking about using sc.exe utility for this purpose. Reading about it I didn't find a way to check whether windows service is installed on a remote server. If the service is installed then I need to stop it and update necessary files, otherwise I need to register the service.
P.S. For release builds I plan to use WiX to create MSI package.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要 MSBuild 社区任务。
在最新版本中,MSBuild.Community.Tasks.v1.2.0.306\Source\Services.proj 中存在一个示例。
它将解决您问题的第一部分:
这些 MSBuild 任务只是 .Net 类 ServiceController。查看文档以了解其工作原理以及如何详细配置它。
第二部分包括安装服务。为此,sc.exe 适合很好。
You need MSBuild Comminity Tasks.
In latest build exists an example in MSBuild.Community.Tasks.v1.2.0.306\Source\Services.proj.
It will solve first part of your question:
Those MSBuild task is just a wrapper around .Net class ServiceController. Take a look for documentation to understand how it works and how you can configure it in details.
Second part includes installing service. For that purpose sc.exe suits very well.
此处发布了完整的解决方案。可以帮助未来的访客。
更新:随着其他博客服务的关闭,链接已更新。
A complete solution is posted here. May help future visitors.
Update: Link updated as the other blogging service went down.