1. 程式人生 > >C#創建安裝、卸載部署程序

C#創建安裝、卸載部署程序

cat star 完成後 新建項目 缺點 會有 cto def 等等

分享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程序了。

至此,基本完成安裝程序,至於其他設置,可以在屬性中設置相關的參數,也可以在視圖中自定義安裝界面等等。

C#創建安裝、卸載部署程序