明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

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

[摘要]利用vs.net2003來制作一個安裝程序是非常的方便的,既使是制作一個web應用程序的安裝程序也是如此。僅僅簡單的幾個步驟就可以完成。首先,創(chuàng)建一個安裝和部署項目。步驟如下:1.在"解決方案資源管理器"中的解決方案中添加一個新項目。用鼠標右鍵單擊解決方案,在彈出的菜單中選擇&...

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

首先,創(chuàng)建一個安裝和部署項目。步驟如下:
1.在"解決方案資源管理器"中的解決方案中添加一個新項目。
用鼠標右鍵單擊解決方案,在彈出的菜單中選擇"添加"->"新建項目"。在打開的對話框中選擇"安裝和部署項目",并選擇"Web安裝項目"模板。在輸入項目名稱后,點擊"確定"按鈕,將新項目添加到解決方案中。
2.將項目的輸出添加到安裝和部署項目中。
 添加完安裝和部署項目后,vs.net2003 IDE會自動打開一個名為"文件系統(tǒng)"的管理器。用鼠標右鍵單擊此管理器右邊樹型結(jié)構(gòu)中的"Web應用程序文件夾",在彈出的菜單中選擇"添加"->"項目輸出"。在彈出的對話框中,選擇"項目"(這時只有一個,就是你的web應用程序項目),然后在下面的列表中選擇"主輸出"和"內(nèi)容文件"兩項(可以復選),接著在"配置"中選擇"Release .NET",點擊"確定"按鈕。

經(jīng)過上面兩個步驟,一個基本的安裝和部署程序就制作完成了,將此項目編譯后就得到了一個Web安裝程序包。

然而,在很多的情況下,我們做的Web應用程序都要使用到數(shù)據(jù)庫,能不能在安裝程序的同時也將數(shù)據(jù)庫一起安裝呢?答案是肯定的。那該怎么做呢?這個問題李洪根先生已經(jīng)解決了,具體內(nèi)容可以參看下面的文章
http://blog.csdn.net/lihonggen0/archive/2004/05/17/13654.aspx
在李洪根先生的這篇文章中詳盡的介紹了安裝程序的制作和如何同時安裝數(shù)據(jù)庫。在此大致敘述如下:
1.新建一個類庫項目,刪除自動生成的Class.cs,重新添加一個新項。鼠標右鍵此項目,在彈出的菜單中選擇"添加"->"添加新項",在彈出的對話框中選擇"安裝程序類"。
2.創(chuàng)建一個自定義的安裝對話框。鼠標右鍵點擊"解決方案資源管理器"中的安裝和部署項目,在彈出的菜單中選擇"視圖"->"用戶界面"。在打開的"用戶界面"管理器中,鼠標右鍵點擊"啟動",在彈出的菜單中選擇"添加對話框"。在打開的對話框中選擇"文本框(A)"。選擇"文本框(A)",在屬性中,依次設(shè)置含Property屬性為CUSTOMTEXT1,CUSTOMTEXT2,CUSTOMTEXT3,CUSTOMTEXT4。
3.創(chuàng)建自定義操作。鼠標右鍵點擊"解決方案資源管理器"中的安裝和部署項目,在彈出的菜單中選擇"視圖"->"自定義操作"。在打開的"自定義操作"管理器中,鼠標右鍵點擊"安裝",在彈出的菜單中選擇"添加自定義操作"。在打開的對話框中,在"查找范圍"中選擇"Web應用程序文件夾",選擇下面列表中的"主輸出來自Install1(活動)"(Install1是"安裝程序類"所在的項目名。如果列表中沒有,可以用上面提到的"將項目的輸出添加到安裝和部署項目中"的方法添加)。然后在"自定義操作"管理器中選擇剛添加的內(nèi)容,在屬性窗口中設(shè)置CustomActionData屬性/dbname=[CUSTOMTEXT1] /server=[CUSTOMTEXT2] /user=[CUSTOMTEXT3] /pwd==[CUSTOMTEXT4] /targetdir="[TARGETDIR]\"
注意:每個設(shè)置內(nèi)容以/分隔,且以空格分開。
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();
這樣,編譯后的安裝程序就可以連數(shù)據(jù)庫一起安裝了。

安裝數(shù)據(jù)庫的問題解決了,還有一個問題,那就是要使ASP.NET程序運行,一個重要的條件就是目標計算機上必須有.NET框架,那能不能在安裝程序時也一同將.NET框架一塊安裝了呢?答案還是肯定的。具體可以參看
Nfdnnetdepvsredistdeploy1_1.mspx
http://www.microsoft.com/china/MSDN/library/netFramework/netframework/
在這篇文章中提到了幾種不同的方法重新分發(fā).NET框架,其中最簡單的一種應該算是使用VS.NET2003了。大致的步驟如下:
1.安裝VS.NET框架引導程序插件。這個插件可以從微軟的網(wǎng)站上下載,下載地址如下:
http://www.microsoft.com/downloads/details.aspx?familyid=627921a0-d9e7-43d6-a293-72f9c370bd19&displaylang=en
2.在"解決方案資源管理器"中,用鼠標右鍵單擊安裝和部署項目,在彈出的菜單中選擇"視圖"->"啟動條件",打開"啟動條件"管理器。
3.在"啟動條件"管理器中,右鍵點擊"目標計算機上的要求",在彈出的的菜單中選擇"添加注冊表啟動條件"。你會發(fā)現(xiàn)在"搜索目標計算機"中多了一項"搜索 RegistryEntry1",在"啟動條件"中多了一項"Condition1"。
4.選擇"搜索 RegistryEntry1",在"屬性"對話框中填寫如下內(nèi)容:
Property:MDACSEARCH
RegKey:Software\Microsoft\DataAccess
Root:vsdrrHKLM
Value:FullInstallVer
選擇"Condition1" ,在"屬性"對話框中填寫如下內(nèi)容:
Condition:MDACSEARCH>="2.6"
進行這一步是因為在安裝.NET框架的時候需要MDAC。

OK,現(xiàn)在編譯安裝和部署項目,就得到了一個可以同時安裝.NET框架的安裝程序。