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

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

主站蜘蛛池模板: 亚洲手机在线人成视频 | 欧美人与善交大片 | 国产亚洲精品久久久久久线投注 | 中文字幕亚洲欧美日韩2o19 | 午夜男人免费福利视频 | 欧美丰满熟妇BBB久久久 | 嗯啊哈啊好棒用力插啊 | 热久久视久久精品18 | 一个人免费观看完整视频日本 | 精品久久电影网 | 巨黄的肉辣文np | 男生在床上脱美女 胸 | 少妇第一次交换 | 国产精品一区二区人妻无码 | 我和黑帮老大第365天第2季在线 | 毛片内射久久久一区 | yellow在线观看免费高清的日本 | 成人a毛片久久免费播放 | 色戒在线完整观看在线播放版 | 色多多涩涩屋下载软件 | 一本道mw高清码二区三区 | TUBE19UP老师学生 | 国产麻豆精品人妻无码A片 国产麻豆精品久久一二三 国产麻豆精品传媒AV国产在线 | 久久亚洲人成网站 | 成人中文字幕在线 | 久久久午夜精品福利内容 | 被肉日常np高h | 丝瓜影院观看免费高清国际观察 | 学生妹被爆插到高潮无遮挡 | 我半夜摸妺妺的奶C了她 | 亚洲AV无码乱码A片无码蜜桃 | 好男人好资源在线观看 | 偷偷鲁青春草原视频分类 | 午夜一区欧美二区高清三区 | 亚洲a免费 | 日本伦子欲 | 人妻中文字幕无码系列 | 漂亮妈妈中文字幕版 | 性刺激欧美三级在线现看中文 | 99久久免费精品 | 免费的好黄的漫画 |