如何在未安装Visual Studio的计算机上安装Windows服务?

Inf*_*nd' 28 .net c# windows-services

安装Windows服务的唯一方法我知道是使用" Visual Studio 2008命令提示符 ",有没有办法在没有安装Visual Studio的机器上安装windows-service(假设.Net版本2.X是安装.)

Kla*_*sen 44

你可以使用installUtil它驻留在.net框架文件夹中(在我的机器上它是C:\ Windows\Microsoft.NET\Framework\v2.0.50727).

  • 对于我的.Net 4.5服务,我必须使用位于C:\ Windows\Microsoft.NET\Framework\v4.0.30319中的InstallUtil.exe.当我尝试使用v2.0.50727目录中的那个时,我收到一条错误消息"组件是由比当前加载的运行时更新的运行时构建的,无法加载." (4认同)

小智 8

您可以将Windows服务安装为MSI.将MSI创建为附加到服务项目的普通项目.

在您的服务项目中创建安装程序类并添加组件serviceInstaller和serviceProcessInstaller并根据需要进行配置.将项目输出从服务项目添加到MSI项目,将安装,提交,回滚和卸载的MSI项目的自定义操作设置为服务项目的输出.

根据需要以任何其他方式更改MSI项目,构建MSI,然后您就可以将服务安装到任何没有VS.NET的Windows计算机或使用InstallUtil实用程序应用程序.MSI还将处理卸载等.

serviceProcessInstaller组件的属性可以为Account运行Service而设置,serviceInstaller包含可以设置的属性,例如Service Name.您必须设置ServiceName及其Parent,MSDN将提供有关如何使用这两个组件的良好信息.

希望这可以帮助.

干杯.


Tib*_*Ana 7

相关的MSDN页面:http://msdn.microsoft.com/en-us/library/sd8zc8ha%28VS.80%29.aspx

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil.exe yourproject.exe
Run Code Online (Sandbox Code Playgroud)

您无需安装Visual Studio即可使用.


Mat*_*vis 5

是的,installutil.exe工作得很好,但我厌倦了必须记住启动Visual Studio 2008命令提示符才能使用它.总是,我打开一个普通的控制台只是为了意识到这个installutil.exe位置不是路径的一部分.

幸运的是,它installutil.exe是一组反射调用的包装器.来自MSDN,

Installutil.exe使用反射检查指定的程序集并查找设置为true的所有Installer类型 RunInstallerAttribute.然后,该工具在该Installer类型的每个实例上执行Install Method或Uninstall Method .

这意味着可以向Windows服务添加代码以使其自行安装和卸载.通过这样做,我不再需要installutil.exe或Visual Studio 2008命令提示符来运行它.

我已经提供了如何在此处执行此操作的分步指南.该-install选件安装Windows服务并启动它.相反,该-uninstall选项会停止服务并将其卸载.