分享3:
需求:對已經開發的應用程序進行安裝封裝操作,即創建安裝、卸載部署程序;
分析:程序的開發是為了在不同的人在不同的機器上使用,為了使不同機器使用該軟件就需要見程序安裝包,並且保證安裝包中必須包含此軟件運行所需的運行環境;
具體操作:
1.在VS2010中新建項目,選擇:其他項目類型->安裝與部署->安裝向導,然后確定;
2.界面默認出現文件系統,分左右兩側;在右側中點擊應用程序文件夾后,右鍵選擇添加文件,將需要打包的執行文件以及相關的組件類庫等添加進行;
3.右擊左邊的“應用程序文件夾”打開屬性對話框,將屬性中的“defaultlocation”的路徑中的“[manufacture]”去掉(不然安裝程序默認目錄就是c:\programm file\你的用戶名\安裝解決方案名稱)
4.對執行程序增加快捷方式,選中執行程序,右鍵選擇生成快捷方式,可以進行重命名,並將其剪切到左側的“用戶的“程序”菜單”或用戶桌面(這樣在安裝完成后,快捷方式就會在菜單或桌面出現)
5.(重要環節)選擇項目名稱右鍵,選擇屬性;在屬性頁中,選擇“系統必備”,將勾選“創建用於安裝系統必備組件的安裝程序”;在復選框中選擇你必備組件;勾選“從與我的應用程序相同的位置下載系統必備組件”(重要一點:勾選”從與我的應用程序相同的位置下載系統必備組件(D)”,其實意思就是說你勾選后,生成安裝項目時,在你安裝項目的路徑下,會有你在系統必備組件列表中勾選的組件.(系統自動完成,這一點還不錯,不需要你自己去下載組件))
到此,基本完成制作,點擊“生成->生成解決方案”,即可在Debug中找到setup.exe或者“項目名稱.msi”
6.關於“創建卸載功能”,有兩種方式如下:
方法一:
A.在添加應用程序時,需要添加一個msiexec.exe(可以重命名為Uninstall.exe),同執行程序一樣(這個文件在c:\window\system32文件夾下);
B.(重要環節)選中msiexec.exe,需要給該執行程序設置Aguement屬性值輸入“/x {ProductCode}”(/x與{ProductCode}間有空格),ProductCode值在項目屬性中可以找到(即為該安裝程序的注冊表號)
這個卸載程序有一個缺點:當制作的安裝包電腦系統如果是64位的話,那么如果安裝程序完成后,在32位電腦上這個卸載功能的話,就行不通(因為msiexec.exe是64位的)。為解決這個問題,唯有自己創建一個應用程序,直接調用系統中的msiexec.exe。
方法二:
新建一個控制台程序,在Main方法中添加如下代碼:string sysroot = System.Environment.SystemDirectory;System.Diagnostics.Process.Start(sysroot+“\\msiexec.exe“,“/x {ProductCode(此值在安裝程序項目屬性中取得) } /qr”);
點擊生成,在bin文件夾中得到.exe文件,將其加入到安裝程序項目中的“應用程序中去”(后面操作一樣了)。這樣就可以直接調用電腦系統中的msiexec.exe程序了。
至此,基本完成安裝程序,至於其他設置,可以在屬性中設置相關的參數,也可以在視圖中自定義安裝界面等等。