ServiceInstaller.Install(IDictionary) 方法

定義

藉由將服務應用程式資訊寫入登錄來安裝服務, 這個方法是安裝工具所使用的方法,安裝工具會自動處理適當的方法。

public:
 override void Install(System::Collections::IDictionary ^ stateSaver);
public override void Install (System.Collections.IDictionary stateSaver);
override this.Install : System.Collections.IDictionary -> unit
Public Overrides Sub Install (stateSaver As IDictionary)

參數

stateSaver
IDictionary

IDictionary,包含與安裝相關的內容資訊。

例外狀況

安裝不包含可執行檔的 ServiceProcessInstaller

-或- 組件的檔案名稱為 null 或空字串。

-或- 服務名稱無效。

-或- 無法開啟服務控制管理員。

服務的顯示名稱長度大於 255 個字元。

系統無法產生服務的控制代碼。

-或-

已安裝該名稱的服務。

備註

一般來說,您不會在 ServiceInstaller 程式碼中呼叫方法; 通常只有安裝公用程式會呼叫這些方法。 安裝公用程式會 Install 在安裝期間自動呼叫此方法。 它會 Rollback 在產生例外狀況的物件上呼叫,以在必要時進行失敗的備份。

應用程式的安裝常式會使用專案安裝程式,自動維護已安裝元件的相關資訊 Installer.Context 。 以參數形式傳入的這 Install 項狀態資訊 stateSaver 會持續更新為實例, ServiceProcessInstaller 而且每個 ServiceInstaller 實例都是由公用程式所安裝。 您的程式碼通常不需要明確地修改此狀態資訊。

ServiceProcessInstaller與您的專案安裝類別相關聯的會安裝專案中所有實例的通用資訊 ServiceInstaller 。 如果此服務有與安裝專案中其他服務分開的任何專案,則此方法會安裝該服務特定的資訊。

若要安裝服務,請建立繼承自類別的專案安裝程式類別 Installer ,並將 RunInstallerAttribute 類別上的屬性設定為 true 。 在您的專案中, ServiceProcessInstaller 為每個服務應用程式建立一個實例,並 ServiceInstaller 針對應用程式中的每個服務建立一個實例。 在您的專案安裝程式類別的函式中,使用和實例設定服務的安裝屬性, ServiceProcessInstaller ServiceInstaller 並將實例加入至 Installers 集合。

注意

建議您使用此函式來新增安裝程式實例;但是,如果您需要在 Installers 方法中新增至集合 Install ,請務必在方法中對集合執行相同的新增專案 Uninstall

針對衍生自類別的所有類別 Installer ,集合的狀態 Installers 在和方法中必須相同 Install Uninstall 。 但是, Install Uninstall 如果您在 Installers 自訂安裝程式類別的函式中將安裝程式實例新增至集合,則可以避免在和方法之間進行集合的維護。

適用於

另請參閱