Advanced Installer 制作.NetWeb部署安装包
因?yàn)槭?Net的Web應(yīng)用程序,所以想用Advanced Installer 調(diào)用Dll實(shí)現(xiàn)安裝部署。
因?yàn)槲倚枰约憾ㄖ茀?shù),包括數(shù)據(jù)庫(kù)服務(wù)器和數(shù)據(jù)庫(kù)名稱等,我需要建立一個(gè)企業(yè)版的項(xiàng)目工程。
?建立完畢,產(chǎn)品參數(shù)設(shè)置好了之后,就轉(zhuǎn)到【用戶界面】-》【對(duì)話框】。
在【首次安裝】目錄下新建一個(gè)對(duì)話框:
? 【圖1.1】
編輯對(duì)話框,如【圖1.1】,我在這里將數(shù)據(jù)庫(kù)服務(wù)器文本框?qū)傩悦O(shè)置為:DBSERVERNAME??? 如【圖1.2】
?
?
? 【圖1.2】
?我們就可以將屬性名稱作為參數(shù)標(biāo)識(shí)。各個(gè)文本框?qū)傩悦Q設(shè)置好,我找到【工程細(xì)節(jié)】-》【自定義操作】
在【安裝執(zhí)行順序】里面有一個(gè)節(jié)點(diǎn)【Install】,右擊【Install】,選擇【添加預(yù)定義自定義操作】下的【.Net Installer類操作】
【.Net Installer類操作】DLL的制作將稍后介紹。
?
?
? 【圖1.3】
?
?我看見(jiàn)如【圖1.4】的默認(rèn)設(shè)置。
?
?
? 【圖1.4】
?其中“操作數(shù)據(jù)”是重點(diǎn)!!這些數(shù)據(jù)將被dotNetCusAct.dll調(diào)用。
?單擊“操作數(shù)據(jù)”后面的小按鈕,彈出【編輯.Net自定義操作】對(duì)話框
?
? 【圖1.5】
Installer類參數(shù)的設(shè)置是重點(diǎn),設(shè)置錯(cuò)誤,將無(wú)法安裝。
如”target-》[APPDIR]\“ 這個(gè)斜杠是必須的,[APPDIR]是安裝路徑屬性名,我前面提到的屬性名稱在這里就能排上用場(chǎng)了。
如“DbServerName-》[DBSERVERNAME]”普通的屬性不加“\”!
在.Net類庫(kù)中可以用語(yǔ)句“Context.Parameters["DbServerName"]“來(lái)獲取參數(shù)值。
?
?
【.Net Installer類操作】DLL的制作
至此,安裝設(shè)置就完成了。下面的工作就交給.Net。
?
在VS中建立動(dòng)態(tài)庫(kù),在項(xiàng)目在添加【安裝程序類】見(jiàn)如下代碼:
?
?
using?System.Collections;using?System.ComponentModel;
using?System.Configuration.Install;
namespace?WebSetupLibrary
{
????[RunInstaller(true)]
????public?partial?class?MyInstaller?:?Installer
????{
????????public?MyInstaller()
????????{
????????????InitializeComponent();
????????}
????????#region?Install?安裝
????????public?override?void?Install(IDictionary?stateSaver)
????????{
????????????base.Install(stateSaver);
????????????Parameters?paramters?=?new?Parameters()?{
????????????????DbServer?=?this.Context.Parameters["DbServer"].ToString(),
????????????????DbName?=?this.Context.Parameters["DbName"].ToString(),
????????????????IISWebName?=?this.Context.Parameters["iisWebName"].ToString(),
????????????????User?=?this.Context.Parameters["UserName"].ToString(),
????????????????Pwd?=?this.Context.Parameters["Password"].ToString(),
????????????????Port?=?this.Context.Parameters["Port"].ToString(),
????????????????Target?=?this.Context.Parameters["target"].ToString(),
????????????????ValidateOption?=?this.Context.Parameters["ValidateOption"].ToString(),
????????????????Videolivedir?=?this.Context.Parameters["VideoLiveDir"].ToString()
????????????};
????????????Operators?o?=?new?Operators();
????????????o.RegisterParamers(paramters);
????????????o.FlashMediaServerSetting();
????????????o.DataBaseSetting();
????????????o.WebSiteSetting();
????????????o.RegistryKeySetting();
????????}
????????#endregion
????}
}
?
有兩個(gè)是必須的:
1. ?[RunInstaller(true)]的值必須為true
2.必須繼承Installer類,重寫Install方法
?
我這里只是做了安裝過(guò)程, 所以只是重寫了Install方法,如要UnInstall,就可以重新UnInstall方法。?
?
posted on 2014-04-10 23:05 NET未來(lái)之路 閱讀(...) 評(píng)論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/3657648.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Advanced Installer 制作.NetWeb部署安装包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SQL Server事务的隔离级别
- 下一篇: 第15章-输入/输出 --- 理解Jav