為C# Windows服務添加安裝程式

來源:互聯網
上載者:User

標籤:des   class   http   tar   com   width   

最近一直在搞Windows服務,也有了不少經驗,感覺許可權方面確定比一般程式要受限很多,但方便性也很多。像後台運行不阻塞系統,不用使用者登入之類。哈哈,扯遠了,今天講一下那個怎麼給Windows服務做個安裝包。為什麼做安裝包?當然是方便了,不用每次調用InstallUtil,還有,就是看上去正規些。 

不多說了,先來看看怎麼做吧。首先,當然是建立一個Windows服務的項目。這個大家應該都知道怎麼做(這都不明白的留言問我),然後要給服務“添加安裝程式”,1所示:(這一步和自己用InstallUtil註冊是完全一樣的) 



(圖1) 

添加後,會出來一個serviceProcessInstal1,還有serviceInstaller1,如果你一個項目裡有兩個服務的話,這裡就會有兩個serviceInstaller類,2: 


(圖2) 

圖3是serviceProcessInstal1的屬性頁面,其中Account就是指用於運行服務的帳戶,如果只是用於本地,可以選LocalSystem(本地系統),這是本地的最高許可權,並可以選擇和案頭互動功能。如果安全性考慮的話,請選擇適合自己的。 

 

(圖3) 

圖4是serviceInstaller2的屬性頁面,其中DisplayName就是顯示在Windows服務管理員中的服務名稱,Desciption是服務的說明。下面ServiceName是服務內部名稱。最關鍵的是下面的StartType,是指服務的啟動方式,是自動,手動和禁用三種。 

 

(圖4) 

下面,就是今天講的重點了,點擊“檔案”->“添加”->“建立項目”(5) 



(圖5) 

選擇“其他項目類型”->“安裝和部署”裡的“安裝項目”(6) 

 

(圖6) 

建好項目後,右鍵剛才建立的安裝項目,選擇“視圖”->“檔案系統”(7) 

 
(圖7) 


這時,開啟了檔案系統屬性。可以看到,螢幕左邊,出現了三項檔案系統的內容,因為我們是Windows服務程式,不需要在開始菜單和案頭上放置表徵圖,所以我們直接右鍵“應用程式檔案夾”->“添加”->“項目輸出”(8) 



(圖8) 

在出來的對話方塊中,選擇“主輸出”和“Release XXX”,這個由你的項目屬性決定,一般選擇Release Any CPU。(9) 

 

(圖9) 

系統會自動把項目輸出檔案,也就是Windows服務程式的EXE檔案和所有引用的類庫檔案都列在中間的框中。這時,為了方便安裝,我們把InstallUtil.exe和兩個我自己寫的批次檔一起添加進去。添加方法類似上面,只是把“項目輸出”改成“檔案”。 
結果10所示: 



(圖10) 

接下來,就該配置一下安裝過程,讓安裝程式自動給我們安裝和卸載Windows服務。 

還是右鍵安裝項目,選“視圖”->“自訂動作”,11: 

 

(圖11) 

左邊的視窗換到了自訂動作的視圖了,右鍵“安裝”->“添加自訂動作”(圖12),出現的對話方塊中,選中“應用程式檔案夾”,再選中其中的InstallUtil.exe檔案(圖13),添加好後,會在安裝操作下面多出一個InstallUtil.exe的分支。點一下它,在右邊的屬性頁面裡,設定Arguments=“ 你的Windows服務檔案名稱”,14(注意檔案名稱前要留一個空格) 

 

(圖12) 


 

(圖13) 

 

(圖14) 

同樣,在提交和卸載處,也添加InstallUtil.exe,不過屬性頁面中設定Arguments=“ -u 你的Windows服務檔案名稱”,這樣,安裝程式就能實現自動安裝註冊和卸載Windows服務了。其實簡單的做法只要在安裝,提交,復原,卸載 都添加項目的主輸出的話也是可以達到自動註冊/卸載服務 功能的,而且不依賴於InstallUtil.exe(15) 





(圖15) 

接下來就該讓Windows服務和安裝項目同時被編譯了。右鍵點擊解決方案,選擇“屬性”(16),在出來的對話方塊中,勾上安裝項目後面的產生。(17) 


 

(圖16) 


 

(圖17) 

最後,右鍵解決方案,選擇“產生解決方案”,這時vs會將兩個項目都會編譯出來。不過要注意一點:項目的啟動順序一定要Windows服務項目在前,安裝項目在後。 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.