在某年的一個暑假,很想把已經寫好的“鋤大地”游戲跟馮Boy分享一下,可是那時候不會做一個自動 安裝 .NET Framework4.0的 安裝 包,很遺憾無法跟她分享我的成果。 最近上頭有任務,讓我去為團隊的成果打一個包,而且項目運行時必備的SQL Server、.NET Frame
在某年的一個暑假,很想把已經寫好的“鋤大地”游戲跟馮Boy分享一下,可是那時候不會做一個自動安裝.NET Framework4.0的安裝包,很遺憾無法跟她分享我的成果。
最近上頭有任務,讓我去為團隊的成果打一個包,而且項目運行時必備的SQL Server、.NET Framework都要一鍵安裝,項目用到的數據庫和端口都要在安裝的時候一同搞好,這回總算是會了。
安裝項目介紹
新建一個安裝包的項目
建好了項目之后就有這個界面:文件系統編輯器
還有其他類型的編輯器。
由左往右分別是:文件系統編輯器,注冊表編輯器,文件類型編輯器,用戶界面編輯器,自定義操作編輯器,啟動條件編輯器。
到現時為止,只用到三個編輯器
安裝包制作
介紹完各個編輯器之后開始制作安裝包了
打開“文件系統編輯器”,右擊應用程序文件夾 —》 添加 —》 文件,在彈出的對話框選擇要安裝到目標計算機里面的文件(包括exe和dll)
通過類似的方式可以在“用戶‘程序’菜單”和“用戶桌面”里面添加內容。最簡單的就是添加快捷方式
如果要在安裝過程中做一些操作(拷貝某些文件,開端口,附加數據庫等等),則要編寫安裝程序類了。在上面說的那個Installer1類中
可以重寫一些方法根據各個不同是的時候選擇適合的方法,這里就OnBeforeInstall方法。
protected override void OnBeforeInstall(IDictionary savedState) { //從用戶界面獲取的參數 string portId = Context.Parameters["PortId"]; base.OnBeforeInstall(savedState); //自己定義的一個利用命令行開放端口的方法 OpenPort(portId); }
安裝程序類定義好之后,回到“文件系統編輯器”添加一個項目輸出
選擇剛才安裝程序類所在的項目。
接著到“自定義操作編輯器”在安裝的節點右鍵—》添加自定義操作,在彈出的對話框選擇剛才添加的主輸出*****
上面開放端口需要一個端口號,而這個端口號則是從用戶界面傳入的。在“用戶界面編輯器”中的啟動節點右擊—》添加對話框,彈出的對話框選擇適當類型的對話框。
這里只選擇文本框(A)就足夠了。
編輯這對話框的內容,可以在屬性窗口編輯。
這里有BannerBitmap,BannerText,BodyText和四組Edit開頭的屬性,相信通過這幅圖就知道各個屬性的含義了,EidtVisible就是控制那組文本框是否顯示
而這里只需要把Eidt1的顯示就可以了,并且各個屬性設成這樣
然后回到自定義操作處編輯打開主輸出****的屬性窗口,給CustomActionData屬性附上這樣的值
/PortId="[PORTID]"
等號前的是安裝程序類的Context.Parameters["PortId"];里面的參數名,后面的PORTID是用戶界面EditPorert屬性的值,這如果有多個參數的話 要用空格隔開,如:
/Para1="[PARA1]" /Para2="[PARA2]"
整個安裝程序大致完成了,最后要是程序運行的時候要有什么必備的組件,例如(.NET Framework),就要在安裝項目右擊,打開屬性窗口,點擊系統必備,選擇必備要組件。
這里放一個小插曲,如果在這里勾選了SQL Server 2005 Express的,在生成的時候報錯了,本人嘗試在安裝程序類中利用代碼調用命名一鍵安裝SQL Server,可是失敗了,原因是系統只允許一個Instraller運行。最終還是得勾選SQL Server 2005 Express的,至于解決方法,得參照另一篇博文《自定義系統必備》
右擊安裝項目生成,安裝包就生成了
Setup.exe是一鍵安裝組件的安裝程序,msi后綴的安裝程序是跳過了組件安裝的安裝程序。到這里安裝包的制作算是完成了。要是在那個暑假我懂得這些,就能跟馮Boy分析我編寫的小游戲了,遺憾吶!
本文的思緒有點紊亂,還得請各位多多指教。謝謝!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com