VS2012 程序打包部署圖文詳解
程序編寫測試完成后接下來我們要做的是打包部署程序,但VS2012讓人心痛的是沒有了打包工具。不知道出于什么原因微軟沒有將打包工具集成在開發(fā)環(huán)境中,但是我知道總會有解決辦法的。
經(jīng)過翻閱資料發(fā)現(xiàn),VS2012雖然沒有集成打包工具,但它為我們提供了下載的端口,需要我們手動安裝一個插件InstallShield。網(wǎng)上有很多第三方的打包工具,但為什么偏要使用微軟提供的呢?因為最原始的也是最高級的,萬變不離其宗。
一、.NET程序部署機制
上篇博客稍微總結了下.NET程序的編譯機制,下面了解些有關程序部署的一些機制。在.NET程序包下有三個文件夾分別是bin文件、obj文件、My Project文件,他們分別封存著程序的組成部分。
bin目錄用來存放程序的編譯結果,它有Debug和Release兩個版本,分別對應的文件夾為bin/Debug和bin/Release,這個文件夾是默認的輸出路徑,在編譯后生成的程序文件會存放在該目錄下。當然我們也可以手動修改程序的輸出路徑,修改方法:項目屬性—>配置屬性—>輸出路徑來修改。
obj目錄是用來保存每個模塊的編譯結果,用來放置程序生成時的中間文件。程序不會直接生成出可用的文件,而是由源程序生成中間文件,再編譯中間文件生成可執(zhí)行文件的。在.NET中,編譯是分模塊進行的,編譯整個完成后會合并為一個.DLL或.EXE保存到bin目錄下。因為每次編譯時默認都是采用增量編譯,即只重新編譯改變了的模塊,obj保存每個模塊的編譯結果,用來加快編譯速度。是否采用增量編譯,可以通過:項目屬性—>配置屬性—>高級—>增量編譯來設置。
My Project目錄定義你程序集的屬性,被稱為項目屬性文件夾。目錄下的AssemblyInfo類文件,用于保存程序集的信息,如名稱,版本等,這些信息一般與項目屬性面板中的數(shù)據(jù)對應,不需要手動編寫。
在程序編譯生成后,程序的源文件就不在重要了,重要的是DLL、EXE、Config等的程序的組件,有了程序的組件程序就能夠正常運行。所以在發(fā)布制作安裝程序時我們只需要將程序的組件打包即可。
二、InstallShield程序打包圖解
VS2012中打包工具被看做程序集,在使用時和程序集一樣被創(chuàng)建到程序解決方案下。需要我們做的是添加項目即可。但是對于初次使用的朋友來說,我們需要根據(jù)提示一步步的先下載安裝該打包工具。具體的安裝方法不再詳述,網(wǎng)上資料很多 。
1、設置安裝程序集
InstallShield安裝完成后,執(zhí)行以下步驟右鍵解決方案-->添加-->新建項目-->其他項目類型-->安裝和部署,具體操作如下圖:
2、發(fā)布程序
在繼續(xù)往下操作前一定要選擇發(fā)布,在啟動項目的屬性內(nèi)設置發(fā)布文件夾默認路徑設置為安裝系統(tǒng)的文件夾。
3、設置程序安裝信息
Application Information主要設置程序在安裝時顯示的有關程序的一些信息,如:程序的開發(fā)者、程序開發(fā)公司,程序安裝圖標和程序簡介等。
4、添加程序文件
在下圖中的第四步中添加程序文件時會有主輸出、源文件等多個選項框,其實它的生成機制和.NET程序的編譯機制是相同的。下圖中的第五部顯示出的UI.主輸出,在生成安裝文件后程序包中包含了與UI層進行交互引用的其它層的引用文件,但不會生成和UI層(啟動層)沒有相連的組件,我們只能通過手動添加。
5、添加程序的資源文件
程序源文件是程序運行的資源文件,也包含了程序的源碼文件。如果不需要打包源文件的話,這步可以省略。
6、設置安裝注冊文件
如果開發(fā)的程序中使用了第三方控件,這時在安裝時往往需要注冊到目標系統(tǒng)中,同樣Install也為用戶提供了此功能。Install能夠通過設置dll文件或OCX文件的注冊,首先要添加注冊的文件,然后通過設置文件的安裝屬性來指定注冊與否,設置如下圖。
7、設計程序的打開方式
Application Shortcuts 程序快捷打開方式,Install為用戶提供了兩種顯示形式,分別是Win菜單和桌面。下圖顯示了設置的一些注意項,此階段也可以設置程序的顯示圖標。
8、設置程序安裝注冊表項
一般的應用程序在安裝時不需要考慮程序的注冊表項,此步驟可以不用設置。
9、設置程序安裝時的安裝視圖
根據(jù)自己的需要進行設計即可。
10、打包環(huán)境
設置完上面的步驟后,我們的打包程序基本設置完成,但是在一些情況下我們往往要打包.net環(huán)境或者其它程序運行所需要的Windows環(huán)境,Install也為我們很好的設計了環(huán)境的打包。
在選擇需要打包的環(huán)境時一定要注意文件的名稱,一般往往是需要直接將環(huán)境安裝包放到安裝exe中這時我們要選擇名稱為Client的文件,如我想要將.NET Framework 4.0的完成安裝包集成到exe中,這時我要選中Microsoft .NET Framework 4.0 Clinet然后等待Vs將該環(huán)境的安裝包下載到程序集文件夾中即可。另外一定要注意名稱后面的(Web Download)括號的內(nèi)容說明文件只是一個鏈接,在安裝時需要網(wǎng)絡下載才可以實現(xiàn)完成安裝。
11、發(fā)布程序
上面的安裝步驟執(zhí)行完成后即可生成解決方案,但是生成的文件會放在DVD-5文件夾內(nèi),想要使用安裝文件的話就必須拷貝整個文件夾否則安裝會出錯,這樣內(nèi)容很繁瑣,而且給客戶的安裝體驗度也很差,那應該有其它的解決辦法吧,是的,如下圖所示,我們將使用SingleImage的安裝包,將所有文件集成到一個Setup.exe中,再次安裝的時候只需要一個Setup.exe即可。
如果我們的安裝文件內(nèi)沒有打包程序運行環(huán)境那上面的操作步驟就完全可以滿足只需要一個Setup.exe即可的要求了,但如果需要將安裝環(huán)境打包到Setup.exe中的話還必須要經(jīng)過下圖的步驟。
好了設置完成后,接下來就是生成解決方案了或者是只生成單個程序集,這時候安裝文件就只有一個setup.exe了,如下圖。
操作完上述步驟后,程序打包基本設置已經(jīng)完成,接下來要做的就是生成解決方案。生成解決方案后會在安裝程序集下面生成一個名為Setup的文件夾,安裝文件就保存在下面的目錄中。Install在生成安裝文件后會有Setup.exe和.msi兩中安裝文件,exe文件是安裝的引導文件,核心文件是msi文件,里面封存了程序的組件。在里面找到Setup.exe文件及msi文件即可進行安裝。
最后還要強調(diào)一點,Install打包工具中并沒有繼承中文環(huán)境,在它的底層語言庫中沒有中文語言,所以解決方案、程序集名稱等涉及到與主輸出相關的文件最好不要以中文名命名,否則會出現(xiàn)如下的錯誤:“ -7184: The FileName column of the File table includes characters that are not available on code page 1252”,該錯誤是在說明在代碼段1252處沒有發(fā)現(xiàn)和文件名相關的語言庫。
萬變不離其宗,微軟的Install程序打包工具雖然使用時較繁瑣,但原始的就是最高級的,其它的打包工具和它相比也差不到哪兒去。
相關文章
Unity shader實現(xiàn)多光源漫反射以及陰影
這篇文章主要為大家詳細介紹了shader實現(xiàn)多光源漫反射以及陰影,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07