利用Visual Studio製作安裝包

來源:互聯網
上載者:User

 在某年的一個暑假,很想把已經寫好的“鋤大地”遊戲跟馮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分析我編寫的小遊戲了,遺憾呐!

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.