逐步解說:使用自訂動作在安裝時顯示訊息

下列逐步解說會示範如何使用自訂動作,來取得使用者輸入,並將其傳遞至安裝期間所出現的訊息方塊。 這是自訂動作的簡單示範,對許多其他的工作相當有用。 例如,自訂動作可以採取 Setup.exe 的位置做為使用者輸入,然後在安裝應用程式後,使用該使用者輸入來啟動應用程式。

這個逐步解說會示範如何使用自訂動作將資料傳遞至動態屬性 (Dynamic Property),以及如何使用安裝程式類別和 [CustomActionData] 屬性。

注意事項注意事項

您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱 Visual Studio 設定

若要建立自訂動作

  1. 在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。

  2. 在 [新增專案] 對話方塊,選取 [專案類型] 窗格中的 [Visual Basic],然後選擇 [範本] 窗格中的 [類別庫]。 在 [名稱] 方塊中輸入 PassData。

    此專案會加入至 [方案總管] 中。

若要建立安裝程式類別

  1. 在 [專案] 功能表上按一下 [加入類別]。

    在 [加入新項目] 對話方塊中選擇 [安裝程式類別]。 接受預設名稱。

  2. 當安裝程式類別出現在設計介面時,以滑鼠右鍵按一下設計介面,並按一下 [檢視程式碼],在程式碼編輯器中檢視檔案內容。

  3. 加入下列程序以覆寫基底類別的 [安裝]、[認可]、[復原] 和 [解除安裝] 程序。

    Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
        MyBase.Install(stateSaver)
        Dim myInput As String = Me.Context.Parameters.Item("Message")
        If myInput Is Nothing Then
            myInput = "There was no message specified"
        End If
        MsgBox(myInput)
    End Sub
    
    Public Overrides Sub Commit(ByVal savedState As System.Collections.IDictionary)
        MyBase.Commit(savedState)
    End Sub
    
    Public Overrides Sub Rollback(ByVal savedState As System.Collections.IDictionary)
        MyBase.Rollback(savedState)
    End Sub
    
    Public Overrides Sub Uninstall(ByVal savedState As System.Collections.IDictionary)
        MyBase.Uninstall(savedState)
    End Sub
    
    public override void Install(System.Collections.IDictionary stateSaver)
    {
        base.Install(stateSaver);
        string myInput = Context.Parameters["message"];
        if (myInput == null)
        {
            myInput = "There was no message specified";
        }
        MessageBox.Show(myInput);
    }
    
    public override void Commit(IDictionary savedState)
    {
        base.Commit(savedState);
    }
    
    public override void Rollback(IDictionary savedState)
    {
        base.Rollback(savedState);
    }
    
    public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);
    }
    
    注意事項注意事項

    如果先輸入 Public Overrides,再輸入空格,Intellisense 將提供方法和屬性的清單,讓您可以從清單中選取 [安裝],然後取得完整宣告。

  4. 在 [方案總管] 中,以滑鼠右鍵按一下 [Class1] 程式碼檔,並選取 [刪除] (因為這不是必要的)。

若要建立部署專案

  1. 在 [檔案] 功能表上指向 [加入],然後按一下 [新增專案]。

  2. 在 [加入新的專案] 對話方塊的 [專案類型] 窗格中,展開 [其他專案類型] 節點,然後選取 [安裝和部署],再選擇 [範本] 窗格中的 [安裝專案]。 在 [名稱] 方塊中輸入 PassData Installer。

  3. 在 [屬性] 視窗內選取 [ProductName] 屬性,然後輸入 PassData。

    同時選取 [Manufacturer] 屬性,輸入「我的公司」。

  4. 在 [檔案系統編輯器] 中選取 [應用程式資料夾] 節點。 在 [動作] 功能表上指向 [加入],再按一下 [專案輸出]。

  5. 在 [加入專案輸出群組] 對話方塊中,選取 [PassData] 專案的主要輸出。

    [來自 PassData 的主要輸出 (作用中)] 隨即會出現在 [檔案系統編輯器] 中。

若要加入自訂動作

  1. 在 [方案總管] 中,選取 [PassData Installer] 專案。 在 [檢視] 功能表中指向 [編輯器],然後按一下 [自訂動作]。

  2. 在 [自訂動作編輯器] 中,選取 (最上層) [安裝] 節點。 在 [動作] 功能表上選擇 [加入自訂動作]。

  3. 在 [選取專案中項目] 對話方塊中,按兩下 [應用程式資料夾]。

  4. 選取 [來自 PassData 的主要輸出 (作用中)],將 PassData 自訂動作加入至 [安裝] 節點。

  5. 在 [屬性] 視窗中,選取 [CustomActionData] 屬性並輸入 /Message="[MESSAGE]"。

  6. 確定 [InstallerClass] 屬性設為 True (預設值)。

若要自訂安裝時的使用者介面

  1. 在 [方案總管] 中選取 [安裝專案]。 在 [檢視] 功能表上指向 [編輯器],然後按一下 [使用者介面]。

  2. 在 [使用者介面編輯器] 中,選取 [安裝] 下的 [開始] 節點。 在 [動作] 功能表上按一下 [加入對話方塊]。

  3. 在 [加入對話方塊] 對話方塊中,選取 [文字方塊 (A)] 對話方塊。

  4. 在 [動作] 功能表上按一下 [上移]。 重複此動作,直到 [文字方塊 (A)] 對話方塊位於 [安裝資料夾] 節點之上為止。

  5. 在 [屬性] 視窗中選取 [BannerText] 屬性並輸入:

    您的訊息是什麼?

  6. 選取 [BodyText] 屬性並輸入:

    在這裡輸入您的訊息。

  7. 選取 [Edit1Label] 屬性並輸入:

    訊息:

  8. 選取 [Edit1Property] 屬性並輸入:

    訊息

  9. 選取 [Edit2Visible]、[Edit3Visible] 和 [Edit4Visible] 屬性,並將這些屬性設定為 False

  10. 在 [建置] 功能表中,按一下 [建置 Pass Data Installer]。

若要在您的開發電腦上安裝

  • 在 [方案總管] 中,選取 [PassData Installer] 專案。 在 [專案] 功能表中,按一下 [安裝]。

    這樣會在您的開發電腦上執行安裝程式。 在 [您的訊息是什麼?] 安裝對話方塊中,輸入 Hello World!.

    注意事項注意事項

    您必須具有這部電腦的安裝使用權限才能執行安裝程式。

若要部署至其他電腦

  1. 在 [Windows 檔案總管] 裡,巡覽至您的專案目錄,然後找出所建置的安裝程式。 預設 <專案組態> 是 [Debug] 或 [Release]。

  2. 將目錄中的 PassData Installer.msi、Setup.exe 以及所有其他檔案和子目錄複製到另一部電腦上。

    注意事項注意事項

    若要在網路之外的電腦上安裝,請將檔案複製到 CD-ROM 之類的傳統媒體。

    在目標電腦上,按兩下 Setup.exe,執行安裝程式。 在 [您的訊息是什麼?] 安裝對話方塊中,輸入 Hello World!.

    注意事項注意事項

    您必須具有這部電腦的安裝使用權限才能執行安裝程式。

若要測試安裝

  • 執行應用程式,並確認這個文字方塊含有在安裝過程中輸入的 'Hello World!' 文字。

若要解除安裝應用程式

  1. 在 Windows [控制台] 中,按兩下 [新增或移除程式] 或 [程式和功能]。

  2. 選取 [PassData Installer],然後按一下 [移除] 或 [解除安裝],再按一下 [確定] 關閉對話方塊。

    秘訣秘訣

    若要從開發電腦進行解除安裝,請在 [專案] 功能表中按一下 [解除安裝]。

請參閱

參考

CustomActionData 屬性

其他資源

部署中的自訂動作管理