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

更新:2007 年 11 月

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

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

注意事項:

根據目前使用的設定與版本,您所看到的對話方塊與功能表命令可能會與 [說明] 中所描述的不同。若要變更設定,請按一下 [工具] 功能表上的 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定

注意事項:

下列說明將示範如何使用 Visual Basic 專案建立部署專案;一般原則會套用至支援部署 Windows 應用程式的所有 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,再輸入空格,Intellisense 將提供方法和屬性的清單,讓您可以從清單中選取 [安裝],然後取得完整宣告。

  4. 以滑鼠右鍵按一下 [方案總管] 的 [Class1.vb],然後選取 [刪除] (因為不需要它)。

若要建立部署專案

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

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

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

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

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

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

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

若要加入自訂動作

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

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

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

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

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

    確定 [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 檔案總管] 裡,巡覽至您的專案目錄,然後找出所建置的安裝程式。預設路徑會是 \Documents and Settings\yourloginname\My Documents\Visual Studio 2005\Projects\Solution Folder Name\My Notepad Installer\project configuration\My Notepad Installer.msi。預設 project configuration 是 [Debug] 或 [Release]。

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

    注意事項:

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

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

    注意事項:

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

若要測試安裝

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

若要解除安裝應用程式

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

  2. 在 [新增或移除程式] 對話方塊中,選取 [PassData Installer],按一下 [移除],再按 [確定] 關閉對話方塊。

    秘訣

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

請參閱

參考

CustomActionData 屬性

其他資源

部署中的自訂動作管理

使用安裝元件