1. 程式人生 > >Winform程式開發部署流程

Winform程式開發部署流程



經過翻閱資料發現,VS2012雖然沒有整合打包工具,但它為我們提供了下載的埠,需要我們手動安裝一個外掛InstallShield

。網上有很多第三方的打包工具,但為什麼偏要使用微軟提供的呢?因為最原始的也是最高階的,萬變不離其宗。

一、.NET程式部署機制

    上篇部落格稍微總結了下.NET程式的編譯機制,下面瞭解些有關程式部署的一些機制。在.NET程式包下有三個資料夾分別是bin檔案、obj檔案、My Project檔案,他們分別封存著程式的組成部分。
    bin目錄用來存放程式的編譯結果,它有DebugRelease兩個版本,分別對應的資料夾為bin/Debug和bin/Release,這個資料夾是預設的輸出路徑,在編譯後生成的程式檔案會存放在該目錄下。當然我們也可以手動修改程式的輸出路徑,修改方法:專案屬性—>配置屬性—>輸出路徑
來修改。
    obj目錄是用來儲存每個模組的編譯結果,用來放置程式生成時的中間檔案。程式不會直接生成出可用的檔案,而是由源程式生成中間檔案,再編譯中間檔案生成可執行檔案的。在.NET中,編譯是分模組進行的,編譯整個完成後會合併為一個.DLL或.EXE儲存到bin目錄下。因為每次編譯時預設都是採用增量編譯,即只重新編譯改變了的模組,obj儲存每個模組的編譯結果,用來加快編譯速度。是否採用增量編譯,可以通過:專案屬性—>配置屬性—>高階—>增量編譯來設定。
    My Project目錄定義你程式集的屬性,被稱為專案屬性資料夾。目錄下的AssemblyInfo類檔案,用於儲存程式集的資訊,如名稱,版本等,這些資訊一般與專案屬性面板中的資料對應,不需要手動編寫。
    在程式編譯生成後,程式的原始檔就不在重要了,重要的是DLL、EXE、Config
等的程式的元件,有了程式的元件程式就能夠正常執行。所以在釋出製作安裝程式時我們只需要將程式的元件打包即可。

二、InstallShield程式打包圖解

    VS2012中打包工具被看做程式集,在使用時和程式集一樣被建立到程式解決方案下。需要我們做的是新增專案即可。但是對於初次使用的朋友來說,我們需要根據提示一步步的先下載安裝該打包工具。具體的安裝方法不再詳述,網上資料很多 。

  1、設定安裝程式集

    InstallShield安裝完成後,執行以下步驟右鍵解決方案-->新增-->新建專案-->其他專案型別-->安裝和部署,具體操作如下圖:

  2、釋出程式

    在繼續往下操作前一定要選擇釋出,在啟動專案的屬性內設定釋出資料夾預設路徑設定為安裝系統的資料夾。

  3、設定程式安裝資訊

    Application Information主要設定程式在安裝時顯示的有關程式的一些資訊,如:程式的開發者、程式開發公司,程式安裝圖示和程式簡介等。

  4、新增程式檔案

    在下圖中的第四步中新增程式檔案時會有主輸出、原始檔等多個選項框,其實它的生成機制和.NET程式的編譯機制是相同的。下圖中的第五部顯示出的UI.主輸出,在生成安裝檔案後程序包中包含了與UI層進行互動引用的其它層的引用檔案,但不會生成和UI層(啟動層)沒有相連的元件,我們只能通過手動新增。

  5、新增程式的資原始檔

    程式原始檔是程式執行的資原始檔,也包含了程式的原始碼檔案。如果不需要打包原始檔的話,這步可以省略。

  6、設定安裝註冊檔案

           如果開發的程式中使用了第三方控制元件,這時在安裝時往往需要註冊到目標系統中,同樣Install也為使用者提供了此功能。Install能夠通過設定dll檔案或OCX檔案的註冊,首先要添加註冊的檔案,然後通過設定檔案的安裝屬性來指定註冊與否,設定如下圖。


  7、設計程式的開啟方式

    Application Shortcuts 程式快捷開啟方式,Install為使用者提供了兩種顯示形式,分別是Win選單和桌面。下圖顯示了設定的一些注意項,此階段也可以設定程式的顯示圖示。

  8、設定程式安裝登錄檔項

一般的應用程式在安裝時不需要考慮程式的登錄檔項,此步驟可以不用設定。

  9、設定程式安裝時的安裝檢視

    根據自己的需要進行設計即可。


   
  10、打包環境

    設定完上面的步驟後,我們的打包程式基本設定完成,但是在一些情況下我們往往要打包.net環境或者其它程式執行所需要的Windows環境,Install也為我們很好的設計了環境的打包。

    在選擇需要打包的環境時一定要注意檔案的名稱,一般往往是需要直接將環境安裝包放到安裝exe中這時我們要選擇名稱為Client的檔案,如我想要將.NET Framework 4.0的完成安裝包整合到exe中,這時我要選中Microsoft .NET Framework 4.0 Clinet然後等待Vs將該環境的安裝包下載到程式集資料夾中即可。另外一定要注意名稱後面的(Web Download)括號的內容說明檔案只是一個連結,在安裝時需要網路下載才可以實現完成安裝。

11、釋出程式

           上面的安裝步驟執行完成後即可生成解決方案,但是生成的檔案會放在DVD-5資料夾內,想要使用安裝檔案的話就必須拷貝整個資料夾否則安裝會出錯,這樣內容很繁瑣,而且給客戶的安裝體驗度也很差,那應該有其它的解決辦法吧,是的,如下圖所示,我們將使用SingleImage的安裝包,將所有檔案整合到一個Setup.exe中,再次安裝的時候只需要一個Setup.exe即可。

           如果我們的安裝檔案內沒有打包程式執行環境那上面的操作步驟就完全可以滿足只需要一個Setup.exe即可的要求了,但如果需要將安裝環境打包到Setup.exe中的話還必須要經過下圖的步驟。

      好了設定完成後,接下來就是生成解決方案了或者是隻生成單個程式集,這時候安裝檔案就只有一個setup.exe了,如下圖。

    操作完上述步驟後,程式打包基本設定已經完成,接下來要做的就是生成解決方案。生成解決方案後會在安裝程式集下面生成一個名為Setup的資料夾,安裝檔案就儲存在下面的目錄中。Install在生成安裝檔案後會有Setup.exe和.msi兩中安裝檔案,exe檔案是安裝的引導檔案,核心檔案是msi檔案,裡面封存了程式的元件。在裡面找到Setup.exe檔案及msi檔案即可進行安裝。

    最後還要強調一點,Install打包工具中並沒有繼承中文環境,在它的底層語言庫中沒有中文語言,所以解決方案、程式集名稱等涉及到與主輸出相關的檔案最好不要以中文名命名,否則會出現如下的錯誤:“ -7184: The FileName column of the File table includes characters that are not available on code page 1252”,該錯誤是在說明在程式碼段1252處沒有發現和檔名相關的語言庫。

    萬變不離其宗,微軟的Install程式打包工具雖然使用時較繁瑣,但原始的就是最高階的,其它的打包工具和它相比也差不到哪兒去。

重新搜尋到的打包程式操作如下:

最近一直在做一個小程式,磕磕絆絆+斷斷續續終於到了要打包釋出的階段了微笑。基於之前做過的《學生資訊 管理系統》和《機房收費系統VB版》兩個程式,所以現在對打包釋出已經不再覺得陌生了。這次是用C#來程式設計的,所以多多少少還是和VB有區別的。開始著手打包之前,我先上網蒐集了一些相關資料,這樣動起手來就不會覺得寸步難行啦~~~

和VB不同,VS有自帶的打包釋出功能,這樣一來就不需要再下載打包工具了。但是如果是第一次使用打包功能,那麼需要先進行下載和註冊。具體步驟見下圖:

1、依次找到【檔案】-【新建】-【專案】,在開啟的對話方塊中找到【已安裝】-【模板】-【其他專案】-【安裝和部署】,如圖示。第一次使用只有一個灰色圖示顯示。雙擊“InstallShield Limited Edition Project”,進入下載網頁。


2、根據提示點選“Step 2”進行下載。


3、此處具體下載過程不再做詳細介紹,但是如有類似下圖所示註冊祕鑰,要記錄下來在以後的啟用過程中需要到。


4,下載並註冊完畢後,再次執行【步驟一】的操作,不同的是這次是在要打包程式的解決方案下右擊【新增】-【專案】,設定好名稱和安裝位置等以後,單擊確定出現下圖所示介面。呵呵,千萬不要被它的繁瑣嚇到哦~~,其實有些功能設定是不需要改動的。


5、填寫相關應用資訊。(PS:反正也不難,很容易就搞定的~~),步驟3點選進入,更改字型、語言等屬性。


6、設定語言、字型、安裝路徑等屬性。注意:語言預設設定為簡體中文,否則安裝路徑有中文的話就會出問題。


7、把程式需要用到的.net打包進去。根據不同的版本而定。


8、新增要打包的檔案、程式。


**********************************************************************************

修改:

提示:由於部落格中沒有註明,導致部分訪客此處遇到了問題。特此友情提示一下:此處要載入release資料夾下的全部檔案,重複的檔案不要替換,否則會體會找不到相應檔案。

***********************************************************************************

9、如果新增過程中release資料夾是空的,則需要重新生成release檔案。【生成】-【配置管理器】.


10、在“活動解決方案配置”下拉框中找到“Release”選項,然後關閉即可。此時在重新執行【步驟8】


11、根據自己的喜好為程式建立快捷方式。


12、把.NET Framework一起打包程序序去:在“Specify Application Data”下找到“Redistributables”雙擊開啟。在左邊的內容視窗中找到“Microsoft .NET FrameWork 4.5 Full”選中該條選項,此時系統會自動進行下載。下載完成的標識為“Needs to be download”變為了“Installed locally”.


13、最後一步,步驟1、2、3、4、5如圖示。將“Releases”雙擊開啟,然後單擊樹狀節點“SingleImage”,在展開的內容視窗中選擇“Setup.exe”選項卡並進行設定。打包完成微笑


最後重新生成解決方案即可。打包完後的安裝包為源程式所在資料夾下的[SetUp]-[Express]-[SingleImage]-[DisImages]-[DISK1]-[setup.exe]。安裝介面如圖示:


其實,比起學習了一些知識,遇到問題不再不知所措、而是漸漸地把自主解決問題的想法付諸實踐並養成一種習慣讓我更加高興,感覺收穫更多。我們正在潛移默化地改變自己,相信每天進步一點點,日積月累,就會變得強大。