



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C#制作自定義安裝程序2010-09-13 15:45(一),安裝程序以前用vs制作過安裝程序,現(xiàn)在把步驟寫出來,有幫助的大家一定要頂哦第一步:建立工程1.打開vs,新建項(xiàng)目->其他項(xiàng)目類型->安裝和部署(這個(gè)子項(xiàng)下面有安裝項(xiàng)目和Web安裝項(xiàng)目等,安裝項(xiàng)目就是普通的桌面程序安裝,Web安裝就是安裝網(wǎng)站,通常安裝到IIS下,這里以普通桌面程序安裝為例),新建安裝項(xiàng)目,命名為SetupTest。2.新建工程后,可以在“解決方案資源管理器”里面看到子項(xiàng):文件系統(tǒng)編輯器,注冊表編輯器,文件類型編輯器,用戶界面編輯器,自定義操作編輯器,啟動(dòng)條件編輯器。下面將會(huì)舉例來說明各個(gè)地方怎么使用。3.
2、最簡單的一個(gè)安裝程序:點(diǎn)擊“文件類型編輯器”,找到“應(yīng)用程序文件夾”,添加->文件,選擇你要打包的程序文件(譬如我的程序有run.exe和lib.dll組成),確定。在項(xiàng)目“SetupTest”上點(diǎn)擊生成,一個(gè)簡單的安裝包就做好了。生成后,點(diǎn)擊安裝,如果沒有錯(cuò)誤的話,你現(xiàn)在可以看到你的安裝包的效果了。4.如何自定義代碼?在制作過程中,這些簡單的功能不能滿足你的要求,那么就自己寫代碼來完成吧。解決方案->添加->新建項(xiàng)目->類庫,命名為Library,在項(xiàng)目Library下面,刪除Class1.cs,添加->新建項(xiàng)目->安裝程序類(名稱為InstallerTe
3、st.cs),打開InstallerTest.cs,你會(huì)發(fā)現(xiàn)這個(gè)class InstallerTest繼承自Installer,里面就一個(gè)構(gòu)造函數(shù)。好了,現(xiàn)在安裝程序不能完成的功能,你可以在這個(gè)類寫代碼來自己實(shí)現(xiàn)了。 舉例:在構(gòu)造函數(shù)里面添上this.BeforeInstall += new InstallEventHandler(InstallerTest_BeforeInstall),實(shí)現(xiàn)方法InstallerTest_BeforeInstall(object sender, InstallEventArgs e),就可以完成程序在安裝之前要做的事情了,
4、Installer主要要用到的事件不外乎這幾個(gè):BeforeInstall,AfterInstall,AfterRollback,AfterUninstall,BeforeRollback,BeforeUninstall,很明顯的意義,就不用解釋了吧5.完成了4中的InstallerTest_BeforeInstall方法,是不是在安裝之前就要執(zhí)行InstallerTest_BeforeInstall中的代碼呢,答案是不行。還要用到“自定義操作編輯器”。項(xiàng)目SetupTest->添加->項(xiàng)目輸出->選擇Library后確定,你會(huì)發(fā)現(xiàn),在項(xiàng)目SetupTest下面多了一項(xiàng)“主輸
5、出來自Library(活動(dòng))”的字樣。好,到正題了,來到“自定義操作”處,可以看到四個(gè)子項(xiàng):安裝,提交,回滾,卸載。在安裝上面點(diǎn)擊右鍵->添加自定義操作->選擇“主輸出來自Library(活動(dòng))”。這樣,重新生成后,安裝之前就會(huì)執(zhí)行InstallerTest_BeforeInstall代碼了。(當(dāng)然,如果你在要在卸載前后做一些事情,就必須在“卸載”處也把自定義操作添加進(jìn)去,否則即使監(jiān)聽了事件AfterUninstall,也不會(huì)執(zhí)行的,完全之策是在安裝,提交,回滾,卸載里面都把主輸出來自Library(活動(dòng))添加進(jìn)去就不怕了,嘿嘿)6.如何得到用戶所選安裝路徑?在實(shí)現(xiàn)代碼的時(shí)候,用戶
6、所選安裝路徑大多數(shù)情況下都要用到,怎么得到他的值呢?在自定義操作->安裝->“主輸出來自Library(活動(dòng))”上面右鍵屬性,在CustomActionData中填入/targetdir="TARGETDIR", 然后在類InstallerTest中用這句話this.Context.Parameters"targetdir" 就可以取得安裝的目錄了。7.如何得到用戶在安裝的時(shí)候輸入的更多的信息?用戶在安裝的時(shí)候,還有可能塡很多其他的信息,比如我以前做的一個(gè)安裝文件中包含安裝數(shù)據(jù)庫,安裝的時(shí)候用戶就要填寫數(shù)據(jù)庫密碼,用戶名等信息。實(shí)現(xiàn)如下:用戶
7、界面->安裝->啟動(dòng)->右鍵->添加對話框->選擇"文本框(A)",可以看到文本框(A)有很多屬性,如:Edit1Label,Edit1Property,Edit1Value,Edit1Visible等,Edit1Label就是這個(gè)輸入框所要輸入的內(nèi)容的提示語,Edit1Value就是所輸入的內(nèi)容。例如:將Edit1Label內(nèi)容填上“請輸入數(shù)據(jù)庫用戶名:”,將Edit1Property內(nèi)容填上DBUSER,Edit1Visible選問true,另外在6中所提到的CustomActionData中,添加上 /dbuser="DBUSE
8、R",再在InstallerTest中用這句話this.Context.Parameters"dbuser" 就可以或得用戶在安裝的時(shí)候所填寫的用戶名了(其他的單選框,復(fù)選框,button按鈕框都差不多獲取值的方法,不再累贅).總之,添加了一些對話框后,把屬性好,還要在CustomActionData添加一個(gè)/parm="屬性值",才能在代碼中獲取改值。8.其他:創(chuàng)建快捷方式,你可能在程序中要?jiǎng)?chuàng)建多個(gè)快捷方式,這里展示一種寫代碼的方式來創(chuàng)建快方式(各個(gè)選項(xiàng)意義就不說了,其中有些選項(xiàng)是可以不需要的,讀者可自己測試選擇使用)添加引用:com名稱為W
9、indows Script Host Object Model using IWshRuntimeLibrary; string dk = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop);/得到桌面文件夾
10、160; IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShellClass(); IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(dk + &q
11、uot;快捷方式到數(shù)據(jù)中心SiteDataCenter.lnk"); shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(dk + "互聯(lián)網(wǎng)公共上網(wǎng)服務(wù)場所信息安全管理系統(tǒng).lnk"); &
12、#160; shortcut.TargetPath = "%HOMEDRIVE%/Program FilesInternet ExplorerIEXPLORE.EXE" shortcut.Arguments = "http:/localhost/web/Main.htm
13、l"/參數(shù) shortcut.Description = "火星網(wǎng)絡(luò)安全有限責(zé)任公司" shortcut.Wo
14、rkingDirectory = pathWeb;/程序所在文件夾,在快捷方式圖標(biāo)點(diǎn)擊右鍵可以看到此屬性 shortcut.IconLocation = "notepad.exe, 0"/圖標(biāo)
15、 shortcut.Hotkey = "CTRL+SHIFT+N"/熱鍵 shortcut.WindowStyle = 1;
16、0; shortcut.Save(); 9.如何在安裝完成后自動(dòng)運(yùn)行某個(gè)程序呢(如run.exe)?將這句代碼寫在AfterInstall里面:
17、; System.Diagnostics.ProcessStartInfo psiConfig = new System.Diagnostics.ProcessStartInfo(path + "run.exe");/path即是安裝的目錄 System.Diagnostics.Process pConfig = System.Diagnostics.Process.Sta
18、rt(psiConfig);(二)卸載(以下是轉(zhuǎn)的,看客自己提取有用信息)1.新建一C# Windows From項(xiàng)目,完成項(xiàng)目的工作2.菜單-文件-添加項(xiàng)目-新建項(xiàng)-安裝部署項(xiàng)目-安裝向?qū)нx擇上面那個(gè)項(xiàng)目的主輸出。在安裝項(xiàng)目的屬性欄中會(huì)顯示出"XXX部署項(xiàng)目屬性",在第一個(gè)AddRemoveProgramsIcon屬性后"瀏覽"到你的ICO圖標(biāo),接著在下面Author輸入作者名,也就是你的名字,其他Localization是語言屬性,Manufacturer,ProductName的屬性將是用戶在安裝時(shí)默認(rèn)設(shè)置的文件夾路徑一部分了,設(shè)置Title為你的應(yīng)用程序標(biāo)題名稱。3.右擊"安裝項(xiàng)目"上,選擇文件系統(tǒng)視圖在應(yīng)用程序文件夾,添加一個(gè)文件,如果是WIN98下的安裝,請選擇WIN98操作系統(tǒng)目錄下的msiexec.exe文件(一般在c:windowssystem目錄下);如果是其他,比如WIN2K系列,請選擇該操作系統(tǒng)目錄下的msiexec.exe文件(一般在winntsystem32目錄下)。4.在文件系統(tǒng)視圖的"用戶程序菜單"里,添加一個(gè)目錄,命名為項(xiàng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 店面租賃定金合同
- 農(nóng)場雇工人合同范例
- 單位搞衛(wèi)生合同范本
- 傳媒公司招人合同范本
- 健筇合同范本
- 2025年遼寧省建筑安全員-A證考試題庫及答案
- 中標(biāo)政府工程合同范本
- 2025浙江省建筑安全員-B證考試題庫附答案
- 公司修路施工合同范本
- 廠房拆遷合同范例工廠企業(yè)
- 供應(yīng)鏈中的社會(huì)責(zé)任
- HDPE纏繞-B型結(jié)構(gòu)壁管施工方案
- 早期教育概論(高職學(xué)前教育專業(yè))全套教學(xué)課件
- 《AutoCAD 中文版實(shí)例教程(AutoCAD 2020) (微課版)(第 2 版)》課件 馬連志 第3、4章 基本繪圖操作、高級繪圖操作
- 幼兒教師職業(yè)道德(高職學(xué)前教育專業(yè))全套教學(xué)課件
- 汽車發(fā)動(dòng)機(jī)構(gòu)造與維修中職PPT完整全套教學(xué)課件
- 養(yǎng)老院管理-考核考評
- 蘇科版八年級生物下冊全冊完整課件
- 第四單元復(fù)習(xí)教學(xué)設(shè)計(jì) 部編版語文七年級上冊
- 人美版四年級書法下冊《第6課 豎心旁》教學(xué)設(shè)計(jì)
- 二年級綜合實(shí)踐活動(dòng)課件-我與蔬菜交朋友-全國通(41張)
評論
0/150
提交評論