最近試驗設計器的獨立模式應用程序,VS2008獨立模式的應用程序除了需要Framework3.5之外,還需要獨立模式的運行環(huán)境。這樣在制作安裝包的時候,就希望最好能夠將獨立模式運行環(huán)境也一起發(fā)布。本來以為很簡單的事情,誰知道搞了好長時間。
制作安裝包的過程就不詳細說了,重點說說獨立模式運行環(huán)境。首先需要檢查是否安裝了獨立模式的運行環(huán)境,通過在“啟動條件”中添加一個注冊表搜索就可以解決。然后增加“啟動條件”,在“啟動條件”的屬性中,有一項InstallUrl,如下圖:
對于該屬性,MSDN的解釋是有3種寫法:URL方式表示啟動條件所需要文件的網址;UNC方式表示所需文件的網絡共享路徑;文件路徑方式表示所需文件相對于安裝程序所以文件夾的路徑。于是在生成的安裝包位置創(chuàng)建shell文件夾,并將所需要文件vs_shell_isolated.chks.exe復制到shell文件夾,然后執(zhí)行安裝程序,可以卻顯示如下圖所示錯誤:
如果去掉InstallUrl中的內容重新編譯就可以進行安裝,查了N久都沒找到問題的解決辦法。直到現在還是沒有搞清楚InstallUrl這個屬性到底是干什么用的,我想可能如果發(fā)現不滿足啟動條件,就和Message屬性一起,提示用戶在什么地方自行安裝。
后來就想,既然Framework可以作為系統(tǒng)必備進行自動檢測并安裝,能否將這個環(huán)境也做成系統(tǒng)必備呢?能否添加系統(tǒng)必備項呢?
于是Google了一下“vs2008 自定義 系統(tǒng)必備”,第一個就是MSDN中的相關信息“添加自定義系統(tǒng)必備”,了解到系統(tǒng)必備主要是定義product.xml和package.xml并準備相關文件(這里提供一個工具來生成系統(tǒng)必備)。于是定義了一個VS2008獨立模式的系統(tǒng)必備項,然后制作安裝包,順利安裝。下圖是添加后的系統(tǒng)必備對話框(圖中藍色部分):
由于這里采用的是帶SP1的獨立模式運行環(huán)境,那么相應的Framework也應該是.Net Framework 3.5 Sp1,于是再選擇3.5Sp1的系統(tǒng)必備重新編譯,可是編譯時卻出現如下錯誤:
后來按照這篇BLOG修正了該問題,至此,順利解決獨立模式應用程序的安裝部署。
順便說一下,除了通過安裝項目和其他安裝工具制作安裝包之外,微軟還提供Windows Installer XML制作安裝包。
注意事項:
1、在系統(tǒng)必備中需要選擇“從與我的應用程序相同的位置下載系統(tǒng)必備組件”這一項,否則可能會從網絡下載必備文件。
2、要使安裝程序能夠自動安裝系統(tǒng)必備,必須使用setup.exe啟動安裝,而不能直接通過*.msi進行安裝,至于原因,請參考這里。
3、雖然安裝程序能夠自動安裝系統(tǒng)必備,但是仍然不要放棄安裝項目中的“啟動條件”,因為用戶可能會直接通過*.msi來進行安裝。
浙公網安備 33010602011771號