天天躁日日躁狠狠躁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 項目安裝包制作(三)補充說明,轉載需保留來源!

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

主站蜘蛛池模板: 国产精品久久久久永久免费看 | 美女诱惑性感揉胸 | 免费果冻传媒在线完整观看 | ppypp午夜限制不卡影院私人 | 国产美女久久久久久久久久久 | 亚洲精品国产乱码AV在线观看 | 小短文H啪纯肉公交车 | beeg日本高清xxxx | 嗯啊不要老师 | 亚洲国产中文字幕新在线 | 猫咪www958ii| 无修肉动漫在线观看影片 | 欧美久久无码AV麻豆 | 含羞草影院免费区 | 成人国产精品视频频 | 51vv视频社区 | 天美传媒 免费观看 | 无码AV毛片色欲欧洲美洲 | 国产乱码伦人偷精品视频 | 精品伊人久久 | 亚洲色欲色欲综合网站 | 国产免费变态视频网址网站 | 精品久久久无码21P发布 | 亚洲中文无码AV在线观看 | 久久久久久久久女黄 | 日韩 亚洲 欧美 中文 高清 | 97人妻久久久精品系列A片 | 久久久久久免费观看 | 好大快用力深一点h视频 | 思思99精品国产自在现线 | metart中国撒尿人体欣赏 | 东北嫖妓对白粗口 | CHINA篮球体育飞机2023 | 三级视频网站 | 亚洲精品成人在线 | 少妇高潮惨叫久久久久久电影 | 国产精品18久久久久久欧美网址 | 天天看学生视频 | 菠萝菠萝蜜高清观看在线 | av老司机色爱区综合 | 男人J桶进男人屁股过程 |