前提
已經(jīng)創(chuàng)建并編寫(xiě)好了windows服務(wù)程序,且下載了Microsoft Visual Studio Installer Project插件。
創(chuàng)建windows服務(wù)程序的參考鏈接:https://blog.csdn.net/xiketangAndy/article/details/126851864
打包步驟
1. 創(chuàng)建打包項(xiàng)目
右鍵windows服務(wù)項(xiàng)目所在的解決方案,搜索setup并創(chuàng)建Setup Project項(xiàng)目。
2. 添加應(yīng)用程序所需文件
右鍵Application Folder,選擇Add->項(xiàng)目輸出。選擇主輸出為編寫(xiě)好的windows服務(wù)程序(vs會(huì)自動(dòng)將程序依賴(lài)的dll文件一起放進(jìn)去),配置選Release Any Cpu。
繼續(xù)向Application Folder添加下述文件(右鍵選擇Add->文件)。
-
InstallUtil.exe,該文件用于將程序注冊(cè)為windows服務(wù)。一般位于計(jì)算機(jī)的C:\Windows\Microsoft.NET\Framework64\v4.0.30319路徑下(前提是有.net環(huán)境)。
-
StartService.vbs,自己寫(xiě)的腳本,內(nèi)容如下:
dim obj
rem run方法有三個(gè)參數(shù),分別表示命令/腳本路徑、cmd窗口運(yùn)行模式、是否等待該命令執(zhí)行結(jié)束后再繼續(xù)執(zhí)行
set obj = CreateObject("Wscript.Shell")
rem 注冊(cè)windows服務(wù),0表示后臺(tái)無(wú)窗口運(yùn)行(即安裝時(shí)不彈出黑框框)
rem obj.Run "InstallUtil.exe MyWindowsService.exe", 0, True
rem 啟動(dòng)windows服務(wù)
obj.Run "net start GetMacByHttpService", 0
注:將運(yùn)行InstallUtil.exe的命令放在腳本中執(zhí)行時(shí)會(huì)有問(wèn)題(解決方案在下面),最后生成的安裝包在安裝時(shí)會(huì)報(bào)錯(cuò),原因應(yīng)該是安裝未完成時(shí)InstallUtil.exe找不到當(dāng)前路徑。
3. 添加自定義操作
右鍵新建的打包項(xiàng)目,選擇view->自定義操作。在Custom Actions界面下右鍵Install,添加自定義操作。
選中第2步中向Application Folder中添加的所有文件,點(diǎn)擊OK確認(rèn)。
右鍵添加進(jìn)來(lái)的InstallUtil.exe,選擇屬性。修改Arguments的內(nèi)容為:“ MyWindowsService.exe”,注意前面有個(gè)空格。MyWindowsService.exe是自己編寫(xiě)的windows服務(wù)程序名。
后續(xù)也可以在Uninstall中添加卸載時(shí)執(zhí)行的動(dòng)作,過(guò)程類(lèi)似。移除windows服務(wù)的命令為:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-711844.html
rem 移除MyWindowsService服務(wù)
InstallUtil.exe -u MyWindowsService.exe
4. 打包生成
先生成已編寫(xiě)好的windows服務(wù)程序,后右鍵Setup項(xiàng)目,點(diǎn)擊生成。最后可以得到一個(gè)exe文件和msi文件,經(jīng)測(cè)試,exe文件可以刪除且不影響安裝,僅保留msi文件即可。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-711844.html
踩過(guò)的坑
- 如果不小心關(guān)閉了File System或Custom Action設(shè)計(jì)窗口,在右上角解決方案管理器下面點(diǎn)擊對(duì)應(yīng)圖標(biāo)可以打開(kāi),鼠標(biāo)懸浮在這些圖標(biāo)上可以看到提示。
- 在編寫(xiě)windows服務(wù)時(shí)如果不小心關(guān)閉了設(shè)計(jì)窗口,雙擊解決方案下的.cs后綴文件即可打開(kāi)(有時(shí)候不好使,重啟vs)。
到了這里,關(guān)于Visual Studio打包windows服務(wù)并實(shí)現(xiàn)自動(dòng)注冊(cè)與開(kāi)啟的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!