利用Visual Studio制作安裝包


  在某年的一個暑假,很想把已經寫好的“鋤大地”游戲跟馮Boy分享一下,可是那時候不會做一個自動安裝.NET Framework4.0的安裝包,很遺憾無法跟她分享我的成果。

  最近上頭有任務,讓我去為團隊的成果打一個包,而且項目運行時必備的SQL Server、.NET Framework都要一鍵安裝,項目用到的數據庫和端口都要在安裝的時候一同搞好,這回總算是會了。

 

安裝項目介紹

新建一個安裝包的項目

建好了項目之后就有這個界面:文件系統編輯器

還有其他類型的編輯器。

由左往右分別是:文件系統編輯器,注冊表編輯器,文件類型編輯器,用戶界面編輯器,自定義操作編輯器,啟動條件編輯器。

到現時為止,只用到三個編輯器

  •   文件系統編輯器:編輯安裝到目標計算機后,各個文件放置的情況,就上面那幅圖所示,“應用程序文件夾”里塞的就是程序所有東西;“用戶的‘程序’菜單”就是開始菜單中的內容,這里一般會有程序的快捷方式、卸載程序;“用戶桌面”就是桌面上方的東西了,一般就有程序的快捷方式了,如果特別一點的就像酷狗的弄多一個文件夾出來。
  •   用戶界面編輯器:這個用於編輯安裝程序時彈出的界面,可以調換各個對話框出現的順序,如果有需要的話,就可以另外增加一些別的對話框,例如填上數據庫的實例名,IP地址,端口號之類的。

  •   自定義操作編輯器:當在安裝過程中還要做其他的操作,例如附加數據庫,文件復制等等,就需要這個自定義操作了。自定義操作則需要另外加項目,一個類庫項目,關鍵的是類庫里面需要一個安裝程序類

 

安裝包制作

介紹完各個編輯器之后開始制作安裝包了

 

打開“文件系統編輯器”,右擊應用程序文件夾 —》 添加 —》 文件,在彈出的對話框選擇要安裝到目標計算機里面的文件(包括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分析我編寫的小游戲了,遺憾吶!

本文的思緒有點紊亂,還得請各位多多指教。謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM