InstallShield安裝過程介紹


安裝包怎么做?首先需要明確安裝是什么?

記得從海洋女神的blog上看到這樣的描述:"安裝的本質,就是拷貝"。

對的,安裝就是復制,將你開發調試的環境和代碼"復制"到目標機器上。當然這個復制不是簡單的將IDE編譯生成的代碼組件簡單的復制到目標機器上這么簡單,但是大體上也是類似,這里的復制需要如下的內容:

  • 將生成的模塊復制到目標機器上
  • 將引用到的模塊復制到目標機器上,
  • 將相關的配置復制到目標機器上

而安裝包就是完成將這些內容復制到目標機器上的一個程序.

 

了解了安裝的本質之后然我們進入整體,如何利用InstallShield來打包應用程序,創建出你自己的安裝包.

首先我們需要下載安裝InstallShield,這里我們選擇2010Premier版本,不同的版本可能具有不同的限制.

當第一次打開InstallShield你會發現它多少有點類似我們開發人員經常接觸的IDE

 

  1. 首先我們來創建一個工程

InstallShield支持很多種不同的工程這里主要介紹兩種

    • InstallScript Project
    • Basic MSI Project

這里參考Kevin wang對這兩種工程的介紹:

InstallScript腳本語言容易學習。

    1. 這種工程類型中,你可以顯示全屏的廣告板(背景圖)。
    2. 這種工程類型利用了InstallScript腳本語言,能夠讓你寫程序控制安裝過程,而不是填寫一些表格數據。
    3. InstallScript類型工程比Basic MSI類型的工程更容易學習。InstallScript工程的學習曲線比Basic MSI工程的短很多。
    4. InstallScript允許你在安裝之前或之后執行自己的操作,可以利用事件驅動模型,這對於Windows開發是非常有用的。
    5. 如果你在維護一個InstallScript工程,那只能選擇InstallScript工程類型。
    6. InstallScript工程沒有使用Windows Installer,所以你的安裝程序無法進行Windows Vista和Windows 7的Logo認證。

 

Basic MSI工程利用Windows Installer服務來進行安裝,以下一些說明也許是你選擇Basic MSI工程的理由:

    1. 你的安裝程序需要進行Windows Vista和Windows 7的Logo認證。這也是使用Windows Installer的主要需求之一。
    2. 你不想利用腳本語言控制你的安裝過程。
    3. 你進行Basic MSI工程的維護工作,不得不選擇Basic MSI。
    4. 你想最大化的與Microsoft SMS管理工具兼容。
    5. 學習Basic MSI工程需要更長時間的學習曲線。 

簡單來講

    • InstallScript需要自己來對安裝的走向通過編寫InstallScript的方式進行調度,所以該工程的有點就是比較容易控制,但是相應的編碼工作量比較大,但是只要掌握了InstallScript基本上就掌握了該類型項目的安裝包制作.
    • Basic MSI執行過程則由Windows Installer驅動msi來一步步執行安裝過程.相對來說Basic Msi工程的優點是界面有現成的可以借用,之需要在需要控制的過程進行編碼即可,但是因為該工程由Windows Installer驅動所以需要理解Windows Installer的一些知識,同時對msi的原理也要有相應的理解才能比較好的掌握基於Basic Msi工程的安裝包開發.

 

在理解了InstallShield提供的工程類型的基本原理之后,然我們來動手實踐一下,這里將使用Basic MSI的工程類型來進行演示.

1,基本安裝操作

首先設定要要安裝的內容,需要將哪些程序發布到目標機器中?

這里我們就演示發布一個txt文件為例.應用程序只是需要將需要引用的模塊同時發布到目標機器中即可.

接着開發應用程序一樣,首先我們需要創建一個InstallShield工程項目,這里選擇Basic Msi Project.

 

輸入基本內容信息

 

 

按照向導一步步填寫

 

添加發布內容

 

如果不需要任何自定義操作,則不需要編寫任何InstallShieldScript

2,添加自定義控制

首先需要添加腳本,這里編寫一個簡單的Hello Msi彈出窗口

在Designer tab頁中選擇InstallScript

在右側的Files中右鍵添加Script File來添加一個腳本文件

 

 

添加如下腳本

export prototype MyFunction(HWND); //如果該函數需要供事件處理直接調用需要如此聲明,且參數必須為HWND

      //如果內部調用則之需要如下聲明

 

/////////////////////////////////////////////////////

function MyFunction(hMSI)//對應聲明中的HWND用於標示MSI的Handle

    // To Do:  Declare local variables.

    STRING szMsg;//局部變量聲明

begin

 

    // To Do:  Write script that will be executed when MyFunction is called.

    szMsg = "This will install Example Program.";

 

    MessageBox (szMsg, INFORMATION);

 

end;

 

將腳本綁定到事件處理中

選擇Customer Action欄

選擇右側的Customer Actions右鍵點開Wizards將會彈出相應的向導

輸入名稱備注

選擇InstallScript類型

選擇添加的函數

一路Next,完成之后將會在Customer Actions中顯示你添加的名稱

 

 

將User Interface->InstallWelcome點開右鍵Edit Behavior(編輯事件處理),Edit Layout(編輯外觀)選擇Edit Behavior

選擇Next PushButton

在右側的列表框中添加一個新的Action:

Event

DoAction

Argument

選擇Customer Actions下的自定義名稱

Condition

選擇1(總是執行)

 

 

 

編譯點擊Test User Interface 測試運行

在歡迎界面中點擊下一步將會彈出"This will install Example Program."

3,發布

選擇Build Project即可完成發布

 

OK,大功告成,InstallShield安裝包的打包流程就介紹到這里了.詳細的信息請參考如下資料

 

參考資料

Stefan Krueger http://msmvps.com/blogs/installsite/default.aspx

Rod Maupin http://www.installationdeveloper.com/

海洋女神 http://www.cnblogs.com/Cindy_weiwei 

奕婷  http://www.cnblogs.com/sabrinahuang/

Kevin wang http://www.cnblogs.com/installshield/archive/2010/06/25/1765043.html

源文檔 <http://www.cnblogs.com/installshield/archive/2010/06/25/1765043.html>

 Install Shield用戶手冊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM