中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

ASP.NET 項目安裝包制作(三)補充說明

  相關文章:ASP.NET項目安裝包制作 、ASP.NET 項目安裝包制作(二)數據庫安裝、其他組件的安裝

  一、 安裝標題

  按照前面的做法中,在安裝過程中,如下圖:

image

  安裝的標題是HxjWebSteup,這樣的標題和產品名稱顯然是無法再實際項目中使用的。

  這里我們需要通過設置安裝項目的屬性來設置一下就可以,選中HxjWebSetup項目按F4出來屬性窗口,這個和右擊項目屬性是不一樣的。如下圖:

image

  我們修改一下ProductName這個屬性,變成Steven hu ProductName,我們再來看看安裝過程,如下圖:

image

  我們想要的效果已經達到了,安裝標題和產品名稱都已經修改。

  二、附加數據庫

  在第二節中有提到可以使用直接附加數據庫文件的形式來完成我們項目數據庫的創建安裝。其實我們平時經常使用企業管理器來附加數據庫,當然我們也可以執行數據庫的系統存儲過程來完成該項操作。

  sp_attach_db 存儲過稱,我們首先來看一下幫助文檔中解釋;

  sp_attach_db

  將數據庫附加到服務器。語法:

  sp_attach_db [ @dbname = ] 'dbname' 

  , [ @filename1 = ] 'filename_n' [ ,...16 ]

  參數

  [@dbname =] 'dbname'

  要附加到服務器的數據庫的名稱。該名稱必須是唯一的。dbname 的數據類型為 sysname,默認值為 NULL。

  [@filename1 =] 'filename_n'

  數據庫文件的物理名稱,包括路徑。filename_n 的數據類型為 nvarchar(260),默認值為 NULL。最多可以指定 16 個文件名。參數名稱以 @filename1 開始,遞增到 @filename16。文件名列表至少必須包括主文件,主文件包含指向數據庫中其它文件的系統表。該列表還必須包括數據庫分離后所有被移動的文件。

  下面我們來具體實現一下,首先將數據庫文件放到web項目app_data文件夾下,如下圖:

image

  接下來,修改安裝類中的代碼,如下:

/// <summary>
///
安裝
/// </summary>
/// <param name="stateSaver"></param>
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);

string connectionString = GetConnectionString(null);

try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();

string sql = "sp_attach_db 'HxjDB','" + Context.Parameters["targetdir"].ToString() + "App_Data/HxjDB_Data.MDF','"
+ Context.Parameters["targetdir"].ToString() + "App_Data/HxjDB_Log.LDF'";

ExecuteSQL(connection, sql);

//ExecuteSQL(connection, GetResource("createdatabase.sql"));

}
}
catch (Exception ex)
{
MessageBox.Show("數據庫安裝失敗!/n數據庫配置有誤,請正確配置信息!/n" + ex.Message, "出錯啦!");

this.Rollback(stateSaver);
}
}

  其他沒有改變,然后就重新打包。然后安裝,在web項目下的數據庫就會被附加上去。

  三、卸載

  在示例中的做法在安裝的時候是沒有問題的,在卸載或者修復的時候,

/// <summary>
///
獲取數據庫登錄連接字符串
/// </summary>
/// <param name="databasename">
數據庫名稱</param>
/// <returns></returns>
private string GetConnectionString(string databasename)
{
return "server=" + Context.Parameters["server"].ToString() + ";database=" + (string.IsNullOrEmpty(databasename) ? "master" : databasename) + ";User ID=" + Context.Parameters["user"].ToString() + ";Password=" + Context.Parameters["pwd"].ToString();
}

  這里是無法獲取正確的鏈接字符串,Context.Parameters["server"] 這些都已經不存在了,所以要想在卸載和修復的時候都可以用,則需要在安裝的時候保存連接字符串。

  保存的位置和方式可根據自己的喜好存儲,畢竟連接字符串不是機密,自己方便自己就好了。要想卸載的時候執行UnInstall方法,需要在安裝項目中自定義操作中的卸載添加HxjDBInstall。如下圖:

image

NET技術ASP.NET 項目安裝包制作(三)補充說明,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久久精品一区 | 日韩av在线免费 | 精品久久久久久 | 97成人在线 | 人人人干| 精品久久久久久久久久 | 中文字幕在线第一页 | 欧美一区在线视频 | k8久久久一区二区三区 | 手机av网 | 99久久婷婷 | 中文精品一区二区 | 一区二区三区视频在线观看 | 日本不卡高清视频 | 欧美中文在线 | 亚洲精品一区二区三区 | 精品自拍视频 | 国产一区二 | 国产视频福利一区 | 一片毛片 | 国产午夜在线 | 欧美综合国产精品久久丁香 | 亚洲精品视频观看 | 国产韩国精品一区二区三区 | 国产精品一区在线 | 男人av的天堂 | 99精品视频在线观看 | 很黄很污的网站 | 一色一黄视频 | 粉嫩一区二区三区四区公司1 | 日韩中文字幕网 | 99久久国产免费 | 国产视频在线一区二区 | 男人久久天堂 | 亚州精品天堂中文字幕 | 黄色电影在线免费观看 | 免费看国产一级特黄aaaa大片 | 日韩中文字幕视频 | 色婷婷av一区二区三区软件 | 精品国产18久久久久久二百 | 51ⅴ精品国产91久久久久久 |