作法:將安裝程式新增至服務應用程式
注意
本文不適用於 .NET 中的託管服務。 如需使用 Microsoft.Extensions.Hosting.BackgroundService 和背景工作角色服務範本之 Windows 服務的最新內容,請參閱:
Visual Studio 隨附安裝元件,可安裝與您服務應用程式相關聯的資源。 安裝元件會在其安裝所在的系統上註冊個別服務,並讓服務控制管理員知道服務的存在。 當您使用服務應用程式時,可以選取 [屬性] 視窗中的連結,以便自動將適當的安裝程式加入您的專案。
注意
適用於服務的屬性值會從服務類別複製到安裝程式類別。 如果您更新服務類別上的屬性值,不會在安裝程式中自動更新它們。
當您將安裝程式加入至專案時,新的類別 (預設命名為 ProjectInstaller
) 會建立於專案中,並在其中建立適當安裝元件的執行個體。 此類別可用來作為專案所需全部安裝元件的中心點。 例如,如果您將第二個服務加入至應用程式,然後按一下 [加入安裝程式] 連結,並不會建立第二個安裝程式類別;而是要將第二個服務所需的額外安裝元件加入至現有類別。
您不需要在安裝程式內進行任何特殊編碼,即可正確安裝您的服務。 不過,如果您需要將特殊功能加入至安裝程序,偶爾可能需要修改安裝程式的內容。
注意
您看到的對話方塊與功能表命令,可能會因您所使用的設定或版本,而與說明中所述不同。 若要變更您的設定,請在 [工具] 功能表上選擇 [匯入和匯出設定]。 如需詳細資訊,請參閱將 Visual Studio IDE 個人化。
將安裝程式加入服務應用程式
在 [方案總管] 中,針對您想要加入安裝元件的服務,存取服務的 [設計] 檢視。
按一下設計工具的背景以選取服務本身,而不是它的任何內容。
當設計工具取得焦點時,以滑鼠右鍵按一下,然後按一下 [加入安裝程式]。
隨即會在您的專案中加入一個新類別 (
ProjectInstaller
) 和兩個安裝元件 (ServiceProcessInstaller 與 ServiceInstaller),並將服務的屬性值複製到元件。按一下 ServiceInstaller 元件,並確認已將 ServiceName 屬性的值設定為與服務本身 ServiceName 屬性相同的值。
若要決定服務啟動方式,按一下 ServiceInstaller 元件,並將 StartType 屬性設定為適當的值。
值 結果 Manual 服務必須在安裝之後手動啟動。 如需詳細資訊,請參閱如何:啟動服務。 Automatic 服務將在電腦重新開機時自行啟動。 Disabled 無法啟動服務。 若要決定服務將在其中執行的安全性內容,按一下 ServiceProcessInstaller 元件,並設定適當的屬性值。 如需詳細資訊,請參閱如何:指定服務的安全性內容。
覆寫任何您需要為其執行自訂處理的方法。
針對專案中的每個額外服務執行步驟 1 到 7。
注意
針對專案中的每個額外服務,您必須在專案的
ProjectInstaller
類別中加入額外的 ServiceInstaller 元件。 在步驟三加入的 ServiceProcessInstaller 元件適用於專案中所有的個別服務安裝程式。