在某年的一個(gè)暑假,很想把已經(jīng)寫(xiě)好的“鋤大地”游戲跟馮Boy分享一下,,可是那時(shí)候不會(huì)做一個(gè)自動(dòng)安裝.NET Framework4.0的安裝包,,很遺憾無(wú)法跟她分享我的成果。 最近上頭有任務(wù),,讓我去為團(tuán)隊(duì)的成果打一個(gè)包,而且項(xiàng)目運(yùn)行時(shí)必備的SQL Server,、.NET Framework都要一鍵安裝,,項(xiàng)目用到的數(shù)據(jù)庫(kù)和端口都要在安裝的時(shí)候一同搞好,這回總算是會(huì)了,。
安裝項(xiàng)目介紹 新建一個(gè)安裝包的項(xiàng)目 建好了項(xiàng)目之后就有這個(gè)界面:文件系統(tǒng)編輯器 還有其他類(lèi)型的編輯器,。 由左往右分別是:文件系統(tǒng)編輯器,注冊(cè)表編輯器,,文件類(lèi)型編輯器,,用戶界面編輯器,自定義操作編輯器,,啟動(dòng)條件編輯器,。 到現(xiàn)時(shí)為止,只用到三個(gè)編輯器
安裝包制作 介紹完各個(gè)編輯器之后開(kāi)始制作安裝包了
打開(kāi)“文件系統(tǒng)編輯器”,,右擊應(yīng)用程序文件夾 —》 添加 —》 文件,在彈出的對(duì)話框選擇要安裝到目標(biāo)計(jì)算機(jī)里面的文件(包括exe和dll) 通過(guò)類(lèi)似的方式可以在“用戶‘程序’菜單”和“用戶桌面”里面添加內(nèi)容,。最簡(jiǎn)單的就是添加快捷方式 如果要在安裝過(guò)程中做一些操作(拷貝某些文件,,開(kāi)端口,附加數(shù)據(jù)庫(kù)等等),,則要編寫(xiě)安裝程序類(lèi)了,。在上面說(shuō)的那個(gè)Installer1類(lèi)中 可以重寫(xiě)一些方法根據(jù)各個(gè)不同是的時(shí)候選擇適合的方法,這里就OnBeforeInstall方法,。 protected override void OnBeforeInstall(IDictionary savedState) { //從用戶界面獲取的參數(shù) string portId = Context.Parameters["PortId"]; base.OnBeforeInstall(savedState); //自己定義的一個(gè)利用命令行開(kāi)放端口的方法 OpenPort(portId); }
安裝程序類(lèi)定義好之后,,回到“文件系統(tǒng)編輯器”添加一個(gè)項(xiàng)目輸出 選擇剛才安裝程序類(lèi)所在的項(xiàng)目。 接著到“自定義操作編輯器”在安裝的節(jié)點(diǎn)右鍵—》添加自定義操作,,在彈出的對(duì)話框選擇剛才添加的主輸出***** 上面開(kāi)放端口需要一個(gè)端口號(hào),,而這個(gè)端口號(hào)則是從用戶界面?zhèn)魅氲摹T凇坝脩艚缑婢庉嬈鳌敝械膯?dòng)節(jié)點(diǎn)右擊—》添加對(duì)話框,,彈出的對(duì)話框選擇適當(dāng)類(lèi)型的對(duì)話框,。 這里只選擇文本框(A)就足夠了。 編輯這對(duì)話框的內(nèi)容,可以在屬性窗口編輯,。 這里有BannerBitmap,,BannerText,BodyText和四組Edit開(kāi)頭的屬性,,相信通過(guò)這幅圖就知道各個(gè)屬性的含義了,,EidtVisible就是控制那組文本框是否顯示 而這里只需要把Eidt1的顯示就可以了,并且各個(gè)屬性設(shè)成這樣 然后回到自定義操作處編輯打開(kāi)主輸出****的屬性窗口,,給CustomActionData屬性附上這樣的值 /PortId="[PORTID]" 等號(hào)前的是安裝程序類(lèi)的Context.Parameters["PortId"];里面的參數(shù)名,,后面的PORTID是用戶界面EditPorert屬性的值,這如果有多個(gè)參數(shù)的話 要用空格隔開(kāi),,如: /Para1="[PARA1]" /Para2="[PARA2]" 整個(gè)安裝程序大致完成了,,最后要是程序運(yùn)行的時(shí)候要有什么必備的組件,例如(.NET Framework),,就要在安裝項(xiàng)目右擊,,打開(kāi)屬性窗口,點(diǎn)擊系統(tǒng)必備,,選擇必備要組件,。 這里放一個(gè)小插曲,如果在這里勾選了SQL Server 2005 Express的,,在生成的時(shí)候報(bào)錯(cuò)了,,本人嘗試在安裝程序類(lèi)中利用代碼調(diào)用命名一鍵安裝SQL Server,可是失敗了,,原因是系統(tǒng)只允許一個(gè)Instraller運(yùn)行,。最終還是得勾選SQL Server 2005 Express的,至于解決方法,,得參照另一篇博文《自定義系統(tǒng)必備》
右擊安裝項(xiàng)目生成,,安裝包就生成了 Setup.exe是一鍵安裝組件的安裝程序,msi后綴的安裝程序是跳過(guò)了組件安裝的安裝程序,。到這里安裝包的制作算是完成了,。要是在那個(gè)暑假我懂得這些,就能跟馮Boy分析我編寫(xiě)的小游戲了,,遺憾吶! 本文的思緒有點(diǎn)紊亂,,還得請(qǐng)各位多多指教,。謝謝!
|
|
來(lái)自: 昵稱19096277 > 《c#》