杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2763|回复: 0

Advanced Installer 制作.NetWeb部署安装包

[复制链接]
发表于 2015-2-6 14:09:13 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
原文:Advanced Installer 制作.NetWeb部署安装包

因为是.Net的Web应用程序,所以想用Advanced Installer 调用Dll实现安装部署。
因为我需要自己定制参数,包括数据库服务器和数据库名称等,我需要建立一个企业版的项目工程。
建立完毕,产品参数设置好了之后,就转到【用户界面】-》【对话框】。
在【首次安装】目录下新建一个对话框:
01.png
        【图1.1】
编辑对话框,如【图1.1】,我在这里将数据库服务器文本框属性名设置为:DBSERVERNAME    如【图1.2】

05.png
              【图1.2】
我们就可以将属性名称作为参数标识。各个文本框属性名称设置好,我找到【工程细节】-》【自定义操作】
在【安装执行顺序】里面有一个节点【Install】,右击【Install】,选择【添加预定义自定义操作】下的【.Net Installer类操作】
【.Net Installer类操作】DLL的制作将稍后介绍。

02.png
        【图1.3】

我看见如【图1.4】的默认设置。

03.png
        【图1.4】
其中“操作数据”是重点!!这些数据将被dotNetCusAct.dll调用。
单击“操作数据”后面的小按钮,弹出【编辑.Net自定义操作】对话框
04.png
        【图1.5】
Installer类参数的设置是重点,设置错误,将无法安装。
如”target-》[APPDIR]“ 这个斜杠是必须的,[APPDIR]是安装路径属性名,我前面提到的属性名称在这里就能排上用场了。
如“DbServerName-》[DBSERVERNAME]”普通的属性不加“”!
在.Net类库中可以用语句“Context.Parameters["DbServerName"]“来获取参数值。

【.Net Installer类操作】DLL的制作
至此,安装设置就完成了。下面的工作就交给.Net。

在VS中建立动态库,在项目在添加【安装程序类】见如下代码:
  1. using System.Collections;
  2. using System.ComponentModel;
  3. using System.Configuration.Install;


  4. namespace WebSetupLibrary
  5. {
  6.     [RunInstaller(true)]
  7.     public partial class MyInstaller : Installer
  8.     {
  9.         public MyInstaller()
  10.         {
  11.             InitializeComponent();
  12.         }

  13.         #region Install 安装

  14.         public override void Install(IDictionary stateSaver)
  15.         {
  16.             base.Install(stateSaver);

  17.             Parameters paramters = new Parameters() {
  18.                 DbServer = this.Context.Parameters["DbServer"].ToString(),
  19.                 DbName = this.Context.Parameters["DbName"].ToString(),
  20.                 IISWebName = this.Context.Parameters["iisWebName"].ToString(),
  21.                 User = this.Context.Parameters["UserName"].ToString(),
  22.                 Pwd = this.Context.Parameters["Password"].ToString(),
  23.                 Port = this.Context.Parameters["Port"].ToString(),
  24.                 Target = this.Context.Parameters["target"].ToString(),
  25.                 ValidateOption = this.Context.Parameters["ValidateOption"].ToString(),
  26.                 Videolivedir = this.Context.Parameters["VideoLiveDir"].ToString()
  27.             };


  28.             Operators o = new Operators();
  29.             o.RegisterParamers(paramters);

  30.             o.FlashMediaServerSetting();
  31.             o.DataBaseSetting();
  32.             o.WebSiteSetting();
  33.             o.RegistryKeySetting();
  34.         }

  35.         #endregion
  36.     }
  37. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-6 01:17 , Processed in 0.135097 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表