在我們做系統(tǒng)開發(fā)的時候忘朝,都會面臨一個安裝包制作的問題恐仑,如何把我們做好的系統(tǒng)泉坐,通過安裝包工具整合成一個安裝包給客戶進行安裝为鳄。安裝包的優(yōu)勢就是一步步安裝就可以了裳仆,不用復制一大堆文件給客戶,還怕缺少那個文件導致系統(tǒng)運行出錯孤钦。本文主要介紹基于DevExpress的Winform程序安裝包的制作內(nèi)容歧斟,包括VS2010和VS2013/V2105的不同處理方式纯丸。
我們知道,VS2010是最后一個可以使用微軟安裝包制作工具的VS版本了静袖,所以后面VS2012/2013/2015版本都需要使用第三方安裝包制作工具觉鼻,微軟推薦使用Install Shield打包工具,本文以這兩個環(huán)境進行介紹安裝包的制作出來队橙。
1坠陈、VS2010使用微軟安裝包制作工具
在該版本及之前的VS 開發(fā)工具,都是使用微軟自帶的安裝包工具進行打包捐康,方便快捷仇矾,雖然也聽說過 Install Shield等大名鼎鼎的安裝包制作,但是集成的東西解总,總是感覺方便一些贮匕,而且也能夠應付大多數(shù)的安裝包制作情景,不知道為什么微軟把它從后續(xù)的版本中移除花枫。
不過慶幸VS2010版本還是繼續(xù)能夠使用其內(nèi)置的安裝包制作工具刻盐,本小節(jié)介紹的就是基于這個內(nèi)置安裝包制作工具做我們的DevExpressWinform程序。
1)準備好待發(fā)布的安裝文件
做安裝包的時候劳翰,一般可以使用項目引用的方式來構建(如活動項目輸出的方式)敦锌,不過我們可能需要對生成的DLL進行一下混淆等特殊處理,所以一般我們是創(chuàng)建一個目錄來放置需要發(fā)布的文件的磕道。如下所示供屉,我在Bin目錄下創(chuàng)建一個DeployedMis的目錄,用來存儲待發(fā)布的文件的溺蕉。
然后我們在Debug或者目錄里面伶丐,把對應的exe或者DLL文件進行混淆操作,我們一般可以選.NET Reactor混淆工具進行處理一下疯特,如下所示哗魂。
然后我們把生成的Debug目錄的文件復制一份到DeployedMis目錄,并把混淆生成的文件替換原有的文件就可以了漓雅。最后順帶捎上漢化文件(如zh-Hans目錄里面的文件)录别、RDLC報表文件、Excel導入模板和其他資源文件邻吞,如下圖所示组题。
2)制作VS安裝包
目前我們就準備好發(fā)布的文件了,接下來的就是要啟動安裝包的制作方面的事情了抱冷,先在VS解決方案里面創(chuàng)建一個VS安裝包工程項目崔列,如下所示。
然后設置好安裝包的一些基礎信息,如公司信息赵讯、產(chǎn)品名稱等關鍵信息盈咳,也就是在安裝包的項目里面打開屬性,得到界面如下圖所示边翼。
然后我們在文件系統(tǒng)視圖里面鱼响,創(chuàng)建相關的目錄,并加入相關的文件组底,注意【應用程序文件夾】目錄下的文件就是我們安裝到客戶目錄的文件內(nèi)容丈积,在這里加入一些主程序exe,然后會自動引入一些DLL的文件的债鸡,所以最終得到下面的工程界面截圖桶癣。
我們在exe的主程序上面右鍵,創(chuàng)建一個快捷方式娘锁,設置好圖標后牙寞,復制到用戶桌面就會成為一個快捷方式的連接了。
如果我們需要為程序添加一個卸載快捷方式莫秆,那么我們在【應用程序文件夾】里面加入C:\Windows\System32\msiexec.exe的系統(tǒng)文件间雀,然后創(chuàng)建一個它的快捷方式,復制到對應的目錄上镊屎,如下界面所示惹挟。
卸載的快捷鍵還需要設置一些安裝包的產(chǎn)品ID才能進行卸載處理,如下所示缝驳。
其中屬性需要設置Arguments參數(shù)為:-x {CB83AA8B-4504-48FF-BF3B-E269CC3244EA}连锯,其中-x后面的參數(shù)就是我們安裝項目的ProductCode內(nèi)容。
弄好這些用狱,我們編譯整個安裝包就可以生成一個符合實際生產(chǎn)需要的安裝包了运怖,安裝包同時也具有程序的卸載功能快捷鍵了,在Win10系統(tǒng)中的菜單如下圖所示夏伊。
有時候摇展,為了方便檢查是否主程序的自動引用少了某些文件,我們還可以檢查【檢測到的依賴項】列表溺忧,查核是否少了某些文件咏连,如果都符合,那么就肯定沒問題了鲁森。
如上圖所示祟滴,我們看到添加主程序后的自動檢測的引用文件,就包含了DevExpress的相關DLL了歌溉,這樣我們做成安裝包后垄懂,客戶安裝這個安裝包就可以使用DevExpress的界面內(nèi)容了,而不需要在客戶端完整的安裝一套DevExpress組件了。
2埠偿、VS2013及以上,使用InstallShield安裝包制作工具
在VS2013上榜晦,我們就需要使用InstallShield進行安裝包制作了冠蒋,我曾經(jīng)在之前的博客里介紹過利用InstallShield制作安裝包的操作《基于InstallShield2013LimitedEdition的安裝包制作》,在使用VS2013創(chuàng)建安裝包之前乾胶,我們需要安裝一個InstallShield的版本抖剿,其中LimitedEdition是一個可以申請免費賬號使用的版本,當然專業(yè)版InstallShield是收費识窿,而且費用也不低的了斩郎。使用LimitedEdition,我們也可以創(chuàng)建一般的安裝包喻频,本文主要介紹基于LimitedEdition版本的安裝包制作缩宜。
安裝完畢LimitedEdition版本后,我們可以在VS的新建項目里面甥温,有一個安裝包的創(chuàng)建工程模板了锻煌。
在做基于DevExpress的Winfrom系統(tǒng)InstallShield安裝包,我們一樣要做上面的事情姻蚓,就是需要準備一個專門的目錄用來放置編譯并混淆好的DLL宋梧,這樣我們在InstallShield LimitedEdition加入主程序的時候,會自動引入所需的DLL以及方便添加所需的資源文件了狰挡。
InstallShield工具提供了輔助的各個步驟的操作捂龄,基本上我們按照要求處理就可以實現(xiàn)了,具體操作指引界面如下所示加叁。
例如倦沧,我在云會員系統(tǒng)的客戶端安裝包,就是使用這個InstallShield工具進行打包的它匕,設置主安裝項目的信息如下所示刀脏。
在安裝包的制作過程中,最為關鍵的就是所需文件的添加處理了超凳,如果添加正確愈污,就能正常進行編譯、安裝操作轮傍,否則就容易編譯過不了暂雹。
我們在【Application Files】里面,添加所需的文件创夜,主要添加主程序以及所需的一些文件杭跪,相關的引用DLL可以通過依賴進入。操作如下所示。
如果我們單擊左邊【Files and Folders】涧尿,我們就可以更加詳細的操作整個安裝包的文件和目錄內(nèi)容了系奉。
如可以查看主程序文件的依賴文件操作。
單擊上圖右鍵菜單的【Dependencies from scan at build...】的時候姑廉,我們可以看到主程序集帶入的相關DLL引用缺亮,里面有很多DevExpress相關的DLL,我們可以通過檢查這個列表桥言,確認是否少了一些特殊的DLL引用萌踱,如果少了,我們再添加對應的文件到安裝包目錄里面就可以了号阿。
接著可以在其他步驟增加快捷方式并鸵,如增加啟動程序、卸載程序的快捷方式扔涧,如下所示园担。
我們也可以通過【Shortcuts】功能進入更加直觀的界面顯示,如下所示枯夜。
以及圖標修改等操作粉铐,還有就是可以修改修改默認安裝界面,最后可以得到安裝包的界面如下所示卤档。
以上就是兩種不同方式的安裝包制作的過程蝙泼,希望能夠幫助您在使用并發(fā)布DevExpress程序的時候有所幫助,也就是如果在VS2010上開發(fā)劝枣,我們可以使用微軟內(nèi)置的安裝包制作工具汤踏,如果是VS2012、VS2013舔腾、VS2015等版本上溪胶,我們就可以使用InstallShield工具進行安裝包制作了。兩者制作的總體思路和配置信息是差不多的稳诚,不過使用界面和方式有所差異哗脖,習慣就好。