.NET下开发的WindowsService通常是采用命令行的方式进行安装,即通过C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>InstallUtil.exe 这个可执行文件安装。如:

这种方式安装比较繁琐,安装不同的WindowsService需要每次执行类似上面的不同的安装命令。可以将命令安装过程写成一个批处理脚本进行安装。

 

  将以下代码保存为.bat文件,将该文件放到安装目录下【包含exe文件的文件夹】,以管理员身份运行该bat文件,即可以安装WindowsService。该脚本运行后能够自动扫描当前目录下的要安装的exe文件,避免不同windows服务进行安装还需要修改要要安装的文件名称,同时该批处理脚本还支持卸载操作,对windows服务要运行的Framework版本也可以进行选择。基本可以做到不同环境不同服务下的一键安装。

@echo off
set netver4=C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
set netver2=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe

echo 请选择要进行的操作代码,以回车结束:
echo 安装服务[1]
echo 卸载服务[2]
set /p oper=

echo 请选择.NET Framework版本,以回车结束:
echo .NET Framework 2[2]
echo .NET Framework 4[4]
set /p ver=

cd %~dp0
for /f "delims=" %%i in ('dir %~dp0 /b/a-d/s ^| findstr "[^.vshost].exe$"') do (
set exefile=%%i

)
echo -------------------------查找到要安装/卸载的exe文件---------------------------------
echo %exefile%

echo 确认继续操作?[y/n]:
set /p confirm=
if /i "%confirm%"=="y" goto o
if /i "%confirm%"=="n" goto c

:c
echo 退出安装
goto:eof



set insmsg=-------------------开始安装-------------------------------
set uninsmsg=-------------------开始卸载-------------------------------


:o
if /i "%oper%"=="2" goto u
if /i "%oper%"=="1" goto a

:u
if /i "%ver%"=="2"  goto u_2
if /i "%ver%"=="4" goto u_4

:u_2
echo %insmsg%
%netver2% %exefile% /u
goto main

:u_4
echo %insmsg%
%netver4% %exefile% /u

goto main

:a
if /i "%ver%"=="2"  goto a_2
if /i "%ver%"=="4" goto a_4

:a_2
echo %insmsg%
%netver2% %exefile%
goto main

:a_4
echo %insmsg%
%netver4% %exefile%
goto main


:main
echo ======================操作完成============================
pause  

 需要注意的是,对于InstallUtil.exe文件的路径,不同电脑可能放置位置不同,只需要修改上面的这两行代码即可:

set netver4=C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
set netver2=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe