系列一: 製作一個可安裝、可啟動、可停止、可卸載的Windows service(downmoon原創)
系列二:示範一個定期執行的windows服務及調試(windows service)(downmoon)
系列三: windows service系列三--製作可控制介面的windows service
因為windows service 工作中最近開始頻繁使用,而手工部署的方式,最好的是用BAT檔案,可是程式要部署到別的伺服器上時,就會發現路徑是一個問題:當然也可以用全域變數來控制,這裡不贅述。
給出一個手工部署的例子
setupServer.bat
echo off
if exist "%SystemRoot%Microsoft.NETFramework2.0.50727" goto netOld
:DispError
echo 您的機器上沒有安裝 .net FrameWork 2.0
pause
goto LastEnd
:netOld
cd %SystemRoot%Microsoft.NETFrameworkv2.0.50727
echo 您的機器上安裝了相應的.net FrameWork,可以安裝本服務,按任意鍵繼續…………
echo off
pause
%SystemRoot%Microsoft.NETFrameworkv2.0.50727installutil C:TradeMatchService2007TradeMatchService2007binDebugTradeMatchService2007.exe
net start "servTradeMatch2007"
:LastEnd
rem exit
卸載如下:
unInstallServer.bat
echo off
if exist "%SystemRoot%Microsoft.NETFramework2.0.50727" goto netOld
:DispError
echo 您的機器上沒有安裝.net FrameWork 2.0,安裝即將終止
pause
goto LastEnd
:netOld
echo 即將卸載本服務,按任意鍵繼續…………
echo off
pause
net stop "servTradeMatch2007"
cd %SystemRoot%Microsoft.NETFrameworkv2.0.50727
%SystemRoot%Microsoft.NETFrameworkv2.0.50727installutil /uninstall C:TradeMatchService2007TradeMatchService2007binDebugTradeMatchService2007.exe
:LastEnd
rem exit
也可以同時判斷兩個以上的net FrameWork版本
這裡要介紹的是一個完整的安裝程式,所以服務本身就略去,如果有朋友需要學習,可以跟我聯絡3w@live.cn
好了,言歸正傳
假定 windows Service已寫好,服務名為servTradeMatch2007,可執行檔名為TradeMatchService2007.exe
一、首先在解決方案中建立一個安裝部署的項目,右鍵點擊項目名稱,在菜單中選擇[添加]-->[項目輸出],
在彈出的"添加項目輸出組"視窗中,第一個下拉框會列出該解決方案中其他的項目,
選擇需要製作安裝的windows service項目,再選擇主輸出,點[確定]。
依次在”目標電腦上的檔案系統“--”應用程式檔案夾“下添加以下四個檔案
1、msiexec.exe
2、start.bat
3、stop.bat
4、主輸出檔案
其中msiexec.exe位於Windows\System32下
stopbat檔案內容如下:echo off
net stop "servTradeMatch2007"
exit
startbat檔案內容如下:
echo off
net start "servTradeMatch2007"
exit
在"使用者的程式檔案夾下",建立一檔案夾”蔬菜網全文檢索索引服務“,分別製作這前三個檔案的捷徑到這裡
按右鍵”卸載服務“(msexec.exe對應的捷徑)
輸入一串值
其中"/x "後面對應和數值來自
Setup_TradeMatchService2007.vdproj檔案
OK ! 產生安裝包,
別急,安裝完後,windows service並沒有安裝成服務。
還必須在安裝項目中添加自訂動作。右擊安裝項目->視圖->自訂動作。如:分別添加自訂動作,在應用程式檔案夾中選擇剛才添加的主輸出即可.
安裝過程如下:
卸載: