[VS2010] 封裝部署時將必要條件一併散佈

今天在論壇上看到有人提到如何不用從網路上下載 .Net framework 這個必要條件,就用 VS2010 整理出來,相同方法在 VS2005 及 VS2008 都適用。

我以前在 VS2005 上開發專案就碰過這個需求,因為我的專案要拿到遠洋客、貨、油輪上安裝 (有絕密消息轉述敦睦艦隊有裝過我另一個專案),在船上透過衛星網路,每一分流量都很貴,所以寄送光碟片或是隨身碟反而是便宜的方案,因此需要把必要條件所需的 .Net framework 及相關軟體一併散佈。

在前篇[VS2010]安裝專案設定低版的 .Net Framework 卻需要高版的 .Net Framework 或其他元件中已經有圖了,我就省點網路空間,直接用這兩張圖繼續往下說明。

當在 Setup.exe 檢查「必要條件」中設定為

從應用程式的相同位置下載必要條件(D)

後,編譯時就會將檔案複製到安裝程式下的目錄。

必要條件

上圖的設定下,當使用者用 Setup.exe 安裝時,就會在上述位置取得必要條件來安裝。

考慮到使用者可能跳過 Setup.exe ,直接執行 Setup.msi 安裝,造成須上網下載檔案的情況時,可在 Setup.msi 檢查「啟動條件」中的 InstallUrl 設定相對位置,這樣在使用者利用 Setup.msi 來安裝程式時,也會到對應目錄取得必要檔案,就不會發生需要上網下載檔案的情形。

啟動條件

由於 VS2005 / VS2008 / VS2010 繁中版均只有提供中文的授權聲明,所以若是選擇安裝環境為英文,編譯時會發出警告,提醒使用者語言環境不一致的情形,由於微軟大部分的封裝檔均與語言無關,所以一般情形是不會有影響,仍然會將必要的檔案重新複製到安裝程式輸出的目錄。

編譯完成後,即可在安裝程式輸出的目錄下發現,編譯器已經將必要條件複製到此目錄,並以子目錄方式存在。

Categories: 封裝部署, 技術分享 | 1 則迴響

文章導覽

One thought on “[VS2010] 封裝部署時將必要條件一併散佈

  1. peter

    璉大:
    我想要在程式安裝時先檢查是否有安裝Windows Installer 3.1,但是不知是不是條件設定有誤,執行封裝程式一直失敗。
    我是使用VS2008,您文中說VS2005 2008 2010設定方法都一樣,但我還是報告一下我的環境。
    我在必要條件中勾選了Windows Installer 3.1也點選了從應用程式的相同位置下載必要條件
    然後爬了文http://social.msdn.microsoft.com/Forums/en/netfxsetup/thread/7fcf9f88-9718-480a-aa26-ce1cdd5d9016
    文中說要檢查msi.dll檔案,於是我也在啟動條件中搜尋目標電腦加了檔案搜尋,設定了FileName值為msi.dll,Folder 值為 [SystemFolder],Min Version 值為 3.1.4000.2435,Property 設成 FILEEXISTS1;然後啟動條件 Condition 值為FILEEXISTS1,InstallUrl 則設成 Installer\WindowsInstaller-KB893803-v2-x86.exe ,結果編譯出來後不管是執行 Setup.exe 還是Setup.msi 結果都失敗。
    錯誤訊息:無法存取Windows Installer 服務…………….啪拉啪啦一堆………。
    暈倒啊,我就是要測沒有Windows Installer 服務的時候你要給我執行Windows Installer 3.1的安裝程式啊………..

    喜歡

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

在WordPress.com寫網誌.

%d 位部落客按了讚: