为C# Windows服务添加安装程序
??????首先,當然是創建一個Windows服務的項目。這個大家應該都知道怎么做(這都不明白的留言問我),然后要給服務“添加安裝程序”,如圖1所示:(這一步和自己用InstallUtil注冊是完全一樣的)
??????(圖1)
??????添加后,會出來一個serviceProcessInstal1,還有serviceInstaller1,如果你一個項目里有兩個服務的話,這里就會有兩個serviceInstaller類,如圖2:
??????(圖2)
??????圖3是serviceProcessInstal1的屬性頁,其中Account就是指用于運行服務的帳戶,如果只是用于本地,可以選LocalSystem(本地系統),這是本地的最高權限,并可以選擇和桌面交互功能。如果安全性考慮的話,請選擇適合自己的。
??????圖4 是serviceInstaller2的屬性頁,其中DisplayName就是顯示在Windows服務管理器中的服務名稱,Desciption是服 務的說明。下面ServiceName是服務內部名稱。最關鍵的是下面的StartType,是指服務的啟動方式,是自動,手動和禁用三種。
??????下面,就是今天講的重點了,點擊“文件”->“添加”->“新建項目”(如圖5)
??????選擇“其他項目類型”->“安裝和部署”里的“安裝項目”(如圖6)
??????建好項目后,右鍵剛才新建的安裝項目,選擇“視圖”->“文件系統”(如圖7)
??????這時,打開了文件系統屬性。可以看到,屏幕左邊,出現了三項文件系統的內容,因為我們是Windows服務程序,不需要在開始菜單和桌面上放置圖標,所以我們直接右鍵“應用程序文件夾”->“添加”->“項目輸出”(如圖8)
??????在出來的對話框中,選擇“主輸出”和“Release XXX”,這個由你的項目屬性決定,一般選擇Release Any CPU。(如圖9)
??????系統會自動把項目輸出文件,也就是Windows服務程序的EXE文件和所有引用的類庫文件都列在中間的框中。這時,為了方便安裝,我們把InstallUtil.exe和兩個我自己寫的批處理文件一起添加進去。添加方法類似上面,只是把“項目輸出”改成“文件”。
??????接下來,就該配置一下安裝過程,讓安裝程序自動給我們安裝和卸載Windows服務。還是右鍵安裝項目,選“視圖”->“自定義操作”,如圖11:
??????左 邊的窗口換到了自定義操作的視圖了,右鍵“安裝”->“添加自定義操作”(圖12),出現的對話框中,選中“應用程序文件夾”,再選中其中的 InstallUtil.exe文件(圖13),添加好后,會在安裝操作下面多出一個InstallUtil.exe的分支。點一下它,在右邊的屬性頁 里,設置Arguments=“ 你的Windows服務文件名”,如圖14(注意文件名前要留一個空格)
??????同樣,在提交和卸載處,也添加InstallUtil.exe,不過屬性頁中設置Arguments=“ -u 你的Windows服務文件名”,這樣,安裝程序就能實現自動安裝注冊和卸載Windows服務了。(如圖15)
??????接下來就該讓Windows服務和安裝項目同時被編譯了。右鍵點擊解決方案,選擇“屬性”(如圖16),在出來的對話框中,勾上安裝項目后面的生成。(如圖17)
??????最后,右鍵解決方案,選擇“生成解決方案”,這時vs會將兩個項目都會編譯出來。不過要注意一點:項目的啟動順序一定要Windows服務項目在前,安裝項目在后。
??????
??????以上是我個人的一點小小經驗,如果有同行愿意指教或者交流,請留言聯系。
??????最早寫windows服務的時候,不知道如何用制作安裝程序來安裝。通常都是用命令InstallUtil來安裝卸載,但我記性不好,這個討厭的命令總記不住,而且,用這個命令安裝后,在service里面看不到所啟動的服務。
??? 后來找了下資料,終于找到如何制作windows service安裝程序,用安裝程序,會自動在service里面增加該服務,可以隨意停止啟動,也可以用自帶的刪除程序來刪除,使用非常方便,唯一的問題是每次打包需要很長時間。
都使用了windows service installer快兩年了,還是記不住如何去使用。(人懶沒辦法),現在整理出來:
1.將寫好的windows服務切換到設計視圖,右鍵-添加安裝程序
2. 切換到新生成的ProjectInstaller.cs設計視圖,找到serviceProcessInstaller1對Account屬性設置為 LocalSystem,對serviceInstaller1的ServiceName屬性設置為Server1(服務的名字),StartType屬 性設置為Automatic(系統啟動的時候自動啟動服務)
3.建立一個新的安裝項目ServerSetup(我們為剛才那個服務建立一個安裝項目)
4.右鍵-添加-項目輸出-主輸出-選擇Service1-確定
5.右鍵-視圖-自定義操作-自定義操作上(安裝)右鍵-添加自定義操作-打開應用程序文件夾-選擇剛才那個主輸出-確定
6.右鍵-視圖-自定義操作-自定義操作上(卸載)右鍵-添加自定義操作-打開應用程序文件夾-選擇剛才那個主輸出-確定 -設置(arguments屬性='/u' 作為卸載時并卸載服務)
7.重新生成,在安裝項目下的bin或release下,可找到可執行的安裝程序,里面已經包含了所有需要的類庫等。
8.雙擊安裝程序安裝后,在服務管理器中(我的電腦-右鍵-管理-服務和應用程序-服務)找到Server1服務,啟動服務
如果想要在本地快速安裝,調試,在安裝項目上點擊右鍵可實現快速安裝卸載。
?
轉載于:https://www.cnblogs.com/tomkillua/archive/2009/06/26/1511366.html
總結
以上是生活随笔為你收集整理的为C# Windows服务添加安装程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows server 2008
- 下一篇: lwbt的内存分配详解