c# - 安装没有 InstallUtil.exe 的 windows 服务

标签 c# deployment windows-services installation

我正在尝试部署 Windows 服务,但不太确定如何正确执行。我一开始将其构建为控制台应用程序,现在我已将其转变为 Windows 服务项目,只需从服务中的 OnStart 方法调用我的类。

我现在需要在没有 Visual Studio 的服务器上安装它,如果我理解正确的话,这意味着我不能使用 InstallUtil.exe,而必须创建一个安装程序类。这是正确的吗?

我确实看过之前的问题,Install a .NET windows service without InstallUtil.exe ,但我只是想确保我理解正确。

如果我创建问题的已接受答案链接到的类,下一步是什么?上传MyService.exe和MyService.exe.config到服务器,双击exe文件,Bob是我叔叔?

服务只会安装在一台服务器上。

最佳答案

我知道这是一个非常古老的问题,但最好用新信息更新它。

您可以使用 sc 安装服务命令:

安装服务.bat:

@echo OFF
echo Stopping old service version...
net stop "[YOUR SERVICE NAME]"
echo Uninstalling old service version...
sc delete "[YOUR SERVICE NAME]"

echo Installing service...
rem DO NOT remove the space after "binpath="!
sc create "[YOUR SERVICE NAME]" binpath= "[PATH_TO_YOUR_SERVICE_EXE]" start= auto
echo Starting server complete
pause

使用 SC,您还可以做更多的事情:卸载旧服务(如果您之前已经安装过它),检查是否存在同名服务...甚至将您的服务设置为自动启动。

众多引用文献之一:creating a service with sc.exe; how to pass in context parameters

我已经通过这种方式和 InstallUtil 完成了。我个人觉得使用 SC 更清洁,对您的健康也更好。

关于c# - 安装没有 InstallUtil.exe 的 windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856705/

相关文章:

c# - 使用特定值初始化运行时值类型数组?

c# - 什么时候可以调用 GC.Collect?

deployment - 如何部署两个相互继承的智能合约一起测试网络?

node.js - 在部署之前还是之后构建 Web 应用程序?

powershell - Windows 服务和 Stop-Process cmdlet 的有趣问题

c# - Entity Framework 为每种类型的记录选择最近的记录

c# - 类型转换是如何工作的?

Java EE 部署问题

java - 将java程序安装为windows服务: Alternative to JavaService?

.net - .Net Windows 服务的相对路径问题..?