天天看點

用VS.NET2003制作WEB應用程式的安裝包

用VS.NET2003制作WEB應用程式的安裝包 

--------------------------------------------------------------------------------

  利用vs.net2003來制作一個安裝程式是非常的友善的,既使是制作一個web應用程式的安裝程式也是如此。僅僅簡單的幾個步驟就可以完成。

首先,建立一個安裝和部署項目。步驟如下:

1.在"解決方案資料總管"中的解決方案中添加一個新項目。

用滑鼠右鍵單擊解決方案,在彈出的菜單中選擇"添加"->"建立項目"。在打開的對話框中選擇"安裝和部署項目",并選擇"Web安裝項目"模闆。在輸入項目名稱後,點選"确定"按鈕,将新項目添加到解決方案中。

2.将項目的輸出添加到安裝和部署項目中。

 添加完安裝和部署項目後,vs.net2003 IDE會自動打開一個名為"檔案系統"的管理器。用滑鼠右鍵單擊此管理器右邊樹型結構中的"Web應用程式檔案夾",在彈出的菜單中選擇"添加"->"項目輸出"。在彈出的對話框中,選擇"項目"(這時隻有一個,就是你的web應用程式項目),然後在下面的清單中選擇"主輸出"和"内容檔案"兩項(可以複選),接着在"配置"中選擇"Release .NET",點選"确定"按鈕。

經過上面兩個步驟,一個基本的安裝和部署程式就制作完成了,将此項目編譯後就得到了一個Web安裝程式包。

然而,在很多的情況下,我們做的Web應用程式都要使用到資料庫,能不能在安裝程式的同時也将資料庫一起安裝呢?答案是肯定的。那該怎麼做呢?這個問題李洪根先生已經解決了,具體内容可以參看下面的文章

<a href="http://blog.csdn.net/lihonggen0/archive/2004/05/17/13654.aspx">http://blog.csdn.net/lihonggen0/archive/2004/05/17/13654.aspx</a>

在李洪根先生的這篇文章中詳盡的介紹了安裝程式的制作和如何同時安裝資料庫。在此大緻叙述如下:

1.建立一個類庫項目,删除自動生成的Class.cs,重新添加一個新項。滑鼠右鍵此項目,在彈出的菜單中選擇"添加"-&gt;"添加新項",在彈出的對話框中選擇"安裝程式類"。

2.建立一個自定義的安裝對話框。滑鼠右鍵點選"解決方案資料總管"中的安裝和部署項目,在彈出的菜單中選擇"視圖"-&gt;"使用者界面"。在打開的"使用者界面"管理器中,滑鼠右鍵點選"啟動",在彈出的菜單中選擇"添加對話框"。在打開的對話框中選擇"文本框(A)"。選擇"文本框(A)",在屬性中,依次設定含Property屬性為CUSTOMTEXT1,CUSTOMTEXT2,CUSTOMTEXT3,CUSTOMTEXT4。

3.建立自定義操作。滑鼠右鍵點選"解決方案資料總管"中的安裝和部署項目,在彈出的菜單中選擇"視圖"-&gt;"自定義操作"。在打開的"自定義操作"管理器中,滑鼠右鍵點選"安裝",在彈出的菜單中選擇"添加自定義操作"。在打開的對話框中,在"查找範圍"中選擇"Web應用程式檔案夾",選擇下面清單中的"主輸出來自Install1(活動)"(Install1是"安裝程式類"所在的項目名。如果清單中沒有,可以用上面提到的"将項目的輸出添加到安裝和部署項目中"的方法添加)。然後在"自定義操作"管理器中選擇剛添加的内容,在屬性視窗中設定CustomActionData屬性/dbname=[CUSTOMTEXT1] /server=[CUSTOMTEXT2] /user=[CUSTOMTEXT3] /pwd==[CUSTOMTEXT4] /targetdir="[TARGETDIR]\"

注意:每個設定内容以/分隔,且以空格分開。

4.在此類中重寫Install方法,并添加下面的代碼

string strConn=String.Format("data source={0};user id={1};password={2};",this.Context.Parameters["server"],this.Context.Parameters["user"],this.Context.Parameters["pwd"]);

this.ExecuteSQL(strConn,"master","CREATE DATABASE "+this.Context.Parameters["dbname"]);

System.Diagnostics.Process pSQL=new System.Diagnostics.Process();

pSQL.StartInfo.FileName="osql.exe";

pSQL.StartInfo.Arguments=String.Format(" -U {0} -P {1} -d{2} -i {3}db.sql",this.Context.Parameters["user"],this.Context.Parameters["pwd"], this.Context.Parameters["dbname"],this.Context.Parameters["targetdir"]);

pSQL.StartInfo.WindowStyle=System.Diagnostics.ProcessWindowStyle.Hidden;

pSQL.Start();

pSQL.WaitForExit();

pSQL.Close();

這樣,編譯後的安裝程式就可以連資料庫一起安裝了。

安裝資料庫的問題解決了,還有一個問題,那就是要使ASP.NET程式運作,一個重要的條件就是目标計算機上必須有.NET架構,那能不能在安裝程式時也一同将.NET架構一塊安裝了呢?答案還是肯定的。具體可以參看

<a href="http://www.microsoft.com/china/MSDN/library/netFramework/netframework/Nfdnnetdepvsredistdeploy1_1.mspx">http://www.microsoft.com/china/MSDN/library/netFramework/netframework/Nfdnnetdepvsredistdeploy1_1.mspx</a>

在這篇文章中提到了幾種不同的方法重新分發.NET架構,其中最簡單的一種應該算是使用VS.NET2003了。大緻的步驟如下:

1.安裝VS.NET架構引導程式插件。這個插件可以從微軟的網站上下載下傳,下載下傳位址如下:

<a href="http://www.microsoft.com/downloads/details.aspx?familyid=627921a0-d9e7-43d6-a293-72f9c370bd19&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=627921a0-d9e7-43d6-a293-72f9c370bd19&amp;displaylang=en</a>

2.在"解決方案資料總管"中,用滑鼠右鍵單擊安裝和部署項目,在彈出的菜單中選擇"視圖"-&gt;"啟動條件",打開"啟動條件"管理器。

3.在"啟動條件"管理器中,右鍵點選"目标計算機上的要求",在彈出的的菜單中選擇"添加系統資料庫啟動條件"。你會發現在"搜尋目标計算機"中多了一項"搜尋 RegistryEntry1",在"啟動條件"中多了一項"Condition1"。

4.選擇"搜尋 RegistryEntry1",在"屬性"對話框中填寫如下内容:

Property:MDACSEARCH

RegKey:Software\Microsoft\DataAccess

Root:vsdrrHKLM

Value:FullInstallVer

選擇"Condition1" ,在"屬性"對話框中填寫如下内容:

Condition:MDACSEARCH&gt;="2.6"

進行這一步是因為在安裝.NET架構的時候需要MDAC。

OK,現在編譯安裝和部署項目,就得到了一個可以同時安裝.NET架構的安裝程式。