InstallShield安裝過程介紹

來源:互聯網
上載者:User

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

記得從海洋女神的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使用者手冊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.