visual studio installer製作安裝包——Installer 類

鏈接:https://msdn.microsoft.com/zh-cn/library/system.configuration.install.installer.aspx

Installer 類

提供自定義安裝的基礎。

命名空間:   System.Configuration.Install
程序集:  System.Configuration.Install(System.Configuration.Install.dll 中)


public class Installer : Component

  名稱 說明
System_CAPS_pubmethod Installer()

初始化 Installer 類的新實例。

  名稱 說明
System_CAPS_protproperty CanRaiseEvents

獲取一個指示組件是否可以引發事件的值。(從 Component 繼承。)

System_CAPS_pubproperty Container

獲取 IContainer,它包含 Component(從 Component 繼承。)

System_CAPS_pubproperty Context

獲取或設置關於當前安裝的信息。

System_CAPS_protproperty DesignMode

獲取一個值,用以指示 Component 當前是否處於設計模式。(從 Component 繼承。)

System_CAPS_protproperty Events

獲取附加到此 Component 的事件處理程序的列表。(從 Component 繼承。)

System_CAPS_pubproperty HelpText

獲取安裝程序集合中所有安裝程序的幫助文字。

System_CAPS_pubproperty Installers

獲取該安裝程序包含的安裝程序的集合。

System_CAPS_pubproperty Parent

獲取或設置包含該安裝程序所屬的集合的安裝程序。

System_CAPS_pubproperty Site

獲取或設置 Component ISite(從 Component 繼承。)

  名稱 說明
System_CAPS_pubmethod Commit(IDictionary)

在派生類中重寫時,完成安裝事務。

System_CAPS_pubmethod CreateObjRef(Type)

創建一個對象,該對象包含生成用於與遠程對象進行通信的代理所需的全部相關信息。(從 MarshalByRefObject 繼承。)

System_CAPS_pubmethod Dispose()

釋放由 Component 使用的所有資源。(從 Component 繼承。)

System_CAPS_protmethod Dispose(Boolean)

釋放由 Component 佔用的非託管資源,還可以另外再釋放託管資源。(從 Component 繼承。)

System_CAPS_pubmethod Equals(Object)

確定指定的對象是否等於當前對象。(從 Object 繼承。)

System_CAPS_protmethod Finalize()

在通過垃圾回收將 Component 回收之前,釋放非託管資源並執行其他清理操作。(從 Component 繼承。)

System_CAPS_pubmethod GetHashCode()

作爲默認哈希函數。(從 Object 繼承。)

System_CAPS_pubmethod GetLifetimeService()

檢索控制此實例的生存期策略的當前生存期服務對象。(從 MarshalByRefObject 繼承。)

System_CAPS_protmethod GetService(Type)

返回一個對象,該對象表示由 Component 或它的 Container 提供的服務。(從 Component 繼承。)

System_CAPS_pubmethod GetType()

獲取當前實例的 Type(從 Object 繼承。)

System_CAPS_pubmethod InitializeLifetimeService()

獲取控制此實例的生存期策略的生存期服務對象。(從 MarshalByRefObject 繼承。)

System_CAPS_pubmethod Install(IDictionary)

在派生類中被重寫時,執行安裝。

System_CAPS_protmethod MemberwiseClone()

創建當前 Object 的淺表副本。(從 Object 繼承。)

System_CAPS_protmethod MemberwiseClone(Boolean)

創建當前 MarshalByRefObject 對象的淺表副本。(從 MarshalByRefObject 繼承。)

System_CAPS_protmethod OnAfterInstall(IDictionary)

引發 AfterInstall 事件。

System_CAPS_protmethod OnAfterRollback(IDictionary)

引發 AfterRollback 事件。

System_CAPS_protmethod OnAfterUninstall(IDictionary)

引發 AfterUninstall 事件。

System_CAPS_protmethod OnBeforeInstall(IDictionary)

引發 BeforeInstall 事件。

System_CAPS_protmethod OnBeforeRollback(IDictionary)

引發 BeforeRollback 事件。

System_CAPS_protmethod OnBeforeUninstall(IDictionary)

引發 BeforeUninstall 事件。

System_CAPS_protmethod OnCommitted(IDictionary)

引發 Committed 事件。

System_CAPS_protmethod OnCommitting(IDictionary)

引發 Committing 事件。

System_CAPS_pubmethod Rollback(IDictionary)

在派生類中重寫時,還原計算機的安裝前狀態。

System_CAPS_pubmethod ToString()

返回包含 Component 的名稱的 String(如果有)。不應重寫此方法。(從 Component 繼承。)

System_CAPS_pubmethod Uninstall(IDictionary)

在派生類中重寫時,移除安裝。

  名稱 說明
System_CAPS_pubevent AfterInstall

Installers 屬性中的所有安裝程序的 Install 方法都運行後發生。

System_CAPS_pubevent AfterRollback

在回滾 Installers 屬性中所有安裝程序的安裝後發生。

System_CAPS_pubevent AfterUninstall

Installers 屬性中所有安裝程序都執行它們的卸載操作後發生。

System_CAPS_pubevent BeforeInstall

在安裝程序集合中每個安裝程序的 Install 方法運行前發生。

System_CAPS_pubevent BeforeRollback

在回滾 Installers 屬性中的安裝程序前發生。

System_CAPS_pubevent BeforeUninstall

Installers 屬性中的安裝程序執行它們的卸載操作前發生。

System_CAPS_pubevent Committed

Installers 屬性中的所有安裝程序均提交它們的安裝後發生。

System_CAPS_pubevent Committing

Installers 屬性中的安裝程序提交它們的安裝前發生。

System_CAPS_pubevent Disposed

當通過調用 Dispose 方法釋放組件時發生。(從 Component 繼承。)

這是.NET Framework 中的所有自定義安裝程序類的基類。安裝程序幫助的計算機上安裝應用程序的組件。

有幾個步驟必須遵循使用 Installer

  • 繼承 Installer 類。

  • 重寫 Install, ,Commit, ,Rollback, ,和 Uninstall 方法。

  • 添加 RunInstallerAttribute 到派生類,並將其設置爲 true

  • 將您的派生的類放在具有您的應用程序若要安裝的程序集。

  • 調用安裝程序。例如,使用 InstallUtil.exe 來調用安裝程序。

Installers 屬性包含安裝程序的集合。如果此實例的 Installer 是安裝程序集合的一部分 Parent 屬性設置爲 Installer 包含列的集合的實例。爲舉例說明如何使用 Installers 集合,請參閱 AssemblyInstaller 類。

Install, ,Commit, ,Rollback, ,和 Uninstall 方法 Installer 類經歷的安裝程序中存儲集合 Installers 屬性,並調用每個安裝程序的相應方法。

Install, ,Commit, ,Rollback, ,和 Uninstall 方法不會在同一個總是調用 Installer 實例。例如,一個 Installer 可能同時安裝和提交應用程序中,使用實例,然後發佈到該實例的引用。更高版本,卸載應用程序時將創建一個新的引用 Installer 實例,也就是說, Uninstall 方法由不同的實例調用 Installer爲此,在派生類中,不保存在一個安裝程序中的計算機的狀態。請改用 IDictionary ,它在調用之間保留並傳遞到您 Install, ,Commit, ,Rollback, ,和 Uninstall 方法。

兩種情況下說明需要將信息保存在狀態保護程序中 IDictionary首先,假設您的安裝程序設置一個註冊表項。它應將保存的鍵中的原始值 IDictionary如果安裝被回滾,則可以還原原始值。其次,假定安裝程序替換現有文件。將現有的文件保存在臨時目錄和文件中的新位置的位置中 IDictionary如果安裝被回滾,較新的文件被刪除,並替換爲從臨時位置原始。

Installer.Context 屬性包含有關安裝的信息。例如,安裝過程中,要保存所需的信息的文件的位置的日誌文件的位置有關的信息 Uninstall 方法,並安裝可執行文件運行時輸入的命令行。

下面的示例演示如何使用 Installer 類。它將創建一個類,該類繼承自 Installer Commit 即將完成, Committing 事件發生並顯示一條消息。若要使用 Installer 類中,您必須引用 System.Configuration.Install 您的項目中的程序集。

using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;

// Set 'RunInstaller' attribute to true.
[RunInstaller(true)]
public class MyInstallerClass: Installer
{
   public MyInstallerClass() :base()
   {
      // Attach the 'Committed' event.
      this.Committed += new InstallEventHandler(MyInstaller_Committed);
      // Attach the 'Committing' event.
      this.Committing += new InstallEventHandler(MyInstaller_Committing);

   }
   // Event handler for 'Committing' event.
   private void MyInstaller_Committing(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("Committing Event occured.");
      Console.WriteLine("");
   }
   // Event handler for 'Committed' event.
   private void MyInstaller_Committed(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("Committed Event occured.");
      Console.WriteLine("");
   }
   // Override the 'Install' method.
   public override void Install(IDictionary savedState)
   {
      base.Install(savedState);
   }
   // Override the 'Commit' method.
   public override void Commit(IDictionary savedState)
   {
      base.Commit(savedState);
   }
   // Override the 'Rollback' method.
   public override void Rollback(IDictionary savedState)
   {
      base.Rollback(savedState);
   }
   public static void Main()
   {
      Console.WriteLine("Usage : installutil.exe Installer.exe ");
   }
}

.NET Framework
1.1 後可用

此類型的任何公共靜態(Visual Basic 中爲 Shared)成員都是線程安全的。但不保證所有實例成員都是線程安全的。

返回頁首
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章