逐步解說:使用自訂動作在安裝時顯示訊息
更新:2007 年 11 月
下列逐步解說會示範如何使用自訂動作,來取得使用者輸入,並將其傳遞至安裝期間所出現的訊息方塊。這是自訂動作的簡單示範,對許多其他的工作相當有用。例如,自訂動作可以採取 Setup.exe 的位置做為使用者輸入,然後在安裝應用程式後,使用該使用者輸入來啟動應用程式。
這個逐步解說會示範如何使用自訂動作將資料傳遞至動態屬性 (Dynamic Property),以及如何使用安裝程式類別和 [CustomActionData] 屬性。
注意事項: |
---|
根據目前使用的設定與版本,您所看到的對話方塊與功能表命令可能會與 [說明] 中所描述的不同。若要變更設定,請按一下 [工具] 功能表上的 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定。 |
注意事項: |
---|
下列說明將示範如何使用 Visual Basic 專案建立部署專案;一般原則會套用至支援部署 Windows 應用程式的所有 Visual Studio 語言專案。 |
若要建立自訂動作
在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。
在 [新增專案] 對話方塊,選取 [專案類型] 窗格中的 [Visual Basic],然後選擇 [範本] 窗格中的 [類別庫]。在 [名稱] 方塊中輸入 PassData。
此專案會加入至 [方案總管] 中。
若要建立安裝程式類別
在 [專案] 功能表上按一下 [加入類別]。
在 [加入新項目] 對話方塊中選擇 [安裝程式類別]。接受預設名稱。
當安裝程式類別出現在設計介面時,以滑鼠右鍵按一下設計介面,並按一下 [檢視程式碼],在程式碼編輯器中檢視檔案內容。
加入以下程序,以覆寫基底類別的 [安裝] 程序:
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 將提供方法和屬性的清單,讓您可以從清單中選取 [安裝],然後取得完整宣告。
以滑鼠右鍵按一下 [方案總管] 的 [Class1.vb],然後選取 [刪除] (因為不需要它)。
若要建立部署專案
在 [檔案] 功能表上指向 [加入],然後按一下 [新增專案]。
在 [加入新的專案] 對話方塊的 [專案類型] 窗格中,展開 [其他專案類型] 節點,然後選取 [安裝和部署],再選擇 [範本] 窗格中的 [安裝專案]。在 [名稱] 方塊中輸入 PassData Installer。
在 [屬性] 視窗內選取 [ProductName] 屬性,然後輸入 PassData。
同時選取 [Manufacturer] 屬性,輸入我的公司。
在 [檔案系統編輯器] 中選取 [應用程式資料夾] 節點。在 [動作] 功能表上指向 [加入],再按一下 [專案輸出]。
在 [加入專案輸出群組] 對話方塊中,選取 [PassData] 專案的主要輸出。
[來自 PassData 的主要輸出 (作用中)] 隨即會出現在 [檔案系統編輯器] 中。
若要加入自訂動作
在 [方案總管] 中,選取 [PassData Installer] 專案。在 [檢視] 功能表中指向 [編輯器],然後按一下 [自訂動作]。
在 [自訂動作編輯器] 中,選取 (最上層) [安裝] 節點。在 [動作] 功能表上選擇 [加入自訂動作]。
在 [選取專案中項目] 對話方塊中,按兩下 [應用程式資料夾]。
選取 [來自 PassData 的主要輸出 (作用中)]。這會將 PassData 自訂動作加入至 [安裝] 節點。
在 [屬性] 視窗中,選取 [CustomActionData] 屬性並輸入 /Message="[MESSAGE]"。
確定 [InstallerClass] 屬性設為 True (預設值)。
若要自訂安裝時的使用者介面
在 [方案總管] 中選取 [安裝專案]。在 [檢視] 功能表上指向 [編輯器],然後按一下 [使用者介面]。
在 [使用者介面編輯器] 中,選取 [安裝] 下的 [開始] 節點。在 [動作] 功能表上按一下 [加入對話方塊]。
在 [加入對話方塊] 對話方塊中,選取 [文字方塊 (A)] 對話方塊。
在 [動作] 功能表上按一下 [上移]。重複此動作,直到 [文字方塊 (A)] 對話方塊位於 [安裝資料夾] 節點之上為止。
在 [屬性] 視窗中選取 [BannerText] 屬性並輸入:
您的訊息是什麼?
選取 [BodyText] 屬性並輸入:
在這裡輸入您的訊息。
選取 [Edit1Label] 屬性並輸入:
訊息:
選取 [Edit1Property] 屬性並輸入:
訊息
選取 [Edit2Visible]、[Edit3Visible] 和 [Edit4Visible] 屬性,並將這些屬性設定為 False。
在 [建置] 功能表中,按一下 [建置 Pass Data Installer]。
若要在您的開發電腦上安裝
在 [方案總管] 中,選取 [PassData Installer] 專案。在 [專案] 功能表中,按一下 [安裝]。
這樣會在您的開發電腦上執行安裝程式。在 [您的訊息是什麼?] 安裝對話方塊中,輸入 Hello World!。
注意事項: 您必須具有這部電腦的安裝使用權限才能執行安裝程式。
若要部署至其他電腦
在 [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]。
將目錄中的 PassData Installer.msi、Setup.exe 以及所有其他檔案和子目錄複製到另一部電腦上。
注意事項: 若要在網路之外的電腦上安裝,請將檔案複製到 CD-ROM 之類的傳統媒體。
在目標電腦上,按兩下 Setup.exe,執行安裝程式。在 [您的訊息是什麼?] 安裝對話方塊中,輸入 Hello World!。
注意事項: 您必須具有這部電腦的安裝使用權限才能執行安裝程式。
若要測試安裝
- 執行應用程式,並確認這個文字方塊含有在安裝過程中輸入的 'Hello World!' 文字。
若要解除安裝應用程式
在 Windows [控制台] 中按兩下 [新增或移除程式]。
在 [新增或移除程式] 對話方塊中,選取 [PassData Installer],按一下 [移除],再按 [確定] 關閉對話方塊。
秘訣 若要從開發電腦進行解除安裝,請在 [專案] 功能表中按一下 [解除安裝]。