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

【图1.1】
编辑对话框,如【图1.1】,我在这里将数据库服务器文本框属性名设置为:DBSERVERNAME 如【图1.2】

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

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

【图1.4】
其中“操作数据”是重点!!这些数据将被dotNetCusAct.dll调用。
单击“操作数据”后面的小按钮,弹出【编辑.Net自定义操作】对话框

【图1.5】
Installer类参数的设置是重点,设置错误,将无法安装。
如”target-》[APPDIR]\“ 这个斜杠是必须的,[APPDIR]是安装路径属性名,我前面提到的属性名称在这里就能排上用场了。
如“DbServerName-》[DBSERVERNAME]”普通的属性不加“\”!
在.Net类库中可以用语句“Context.Parameters["DbServerName"]“来获取参数值。
【.Net Installer类操作】DLL的制作
至此,安装设置就完成了。下面的工作就交给.Net。
在VS中建立动态库,在项目在添加【安装程序类】见如下代码:
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 }}
有两个是必须的:
1. [RunInstaller(true)]的值必须为true
2.必须继承Installer类,重写Install方法
我这里只是做了安装过程, 所以只是重写了Install方法,如要UnInstall,就可以重新UnInstall方法。
Advanced Installer 制作.NetWeb部署安装包的更多相关文章
- Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法
原文:Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法 前几个月使用Advanced Installer 打包了一堆安装包,其中有使用默认主题的,也有根据 ...
- C#进阶系列——使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)
前言:上篇C#进阶系列——使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)介绍了下使用Advanced Installer配置IIS和Web.confi ...
- 使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)
前言:上篇使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)介绍了下使用Advanced Installer配置IIS和Web.config的过程,操作起 ...
- 制作部署安装包:Inno Setup
制作部署安装包:Inno Setup 前一篇尝试Office 2003 VSTO的开发.部署有提到用VS开发一个简单的VSTO程序.打包C/S程序,我首先想到的是VS里自带的Setup Project ...
- 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解
关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...
- C# 制作Windows服务安装包
C# 制作Windows服务安装包 这两天公司要用C#写一个windows服务,做成安装安装包.制作的过程中遇到了一些问题,写完之后总结一下.如果以后在用到的话可以可以参考一下,而且由于原来没有做 ...
- IS2009制作Oracle 静默安装包(二) 感谢空白先生特许授权
原文:IS2009制作Oracle 静默安装包(二) 感谢空白先生特许授权 上一篇: IS2009制作Oracle 静默安装包(一)感谢空白先生特许授权本文经原作者特许授权于海洋女神发布,转载请务必注 ...
- 制作linux内核安装包
实验基于Centos 6.2 升级linux内核 直接在一个有编译环境的设备上,编译升级内核很简单. make menuconfig 或者 拷贝现有系统的.config文件 修改.config文件 ...
- NSIS:制作软件升级安装包
原文 NSIS:制作软件升级安装包 相信不是每个人写的软件都只发布一次就可以了,肯定要有修改和维护的情况发生.在这种情况下,您可能就需要一个软件的升级安装包了. 现在,我们就来一步步把这个安装包做 ...
随机推荐
- 普通的年轻状态机,纯C语言
我们第一次接触到了状态机.在数字电路课程.计数器.串行奇偶校验.考了1连续报错电路 等待,两者都需要一个状态机模型.电路实现这些功能,与状态机的状态转移图.状态转移表是等价. 后.然后,我们联系了状态 ...
- decorate pattern 装饰模式
[装饰模式的优缺点]装饰模式的优点:1.比静态继承更灵活:2.避免在层次结构高层的类有太多的特征装饰模式的缺点:1.使用装饰模式会产生比使用继承关系更多的对象.并且这些对象看上去都很想像,从而使得查错 ...
- java单元测试(Junit)
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用. 对不同性质的被 ...
- effective c++ 条款7 declare virtual destructor for polymophyc base class
这似乎很明显. 如果base class的destructor不是virtual,当其derived class作为基类使用,析构的时候derived class的数据成员将不会被销毁. 举个例子 我 ...
- 辛星和你解读PHP递归
事实上递归成其他的编程语言可以是初学者练习功能,但由于PHP特殊性,我们把它拿出来具体解释什么.关于什么是递归先说说.我是第一个承认正在寻求一些递归阶乘,例如,我们写一个函数,然后问多少的阶乘. 看以 ...
- Directx11学习笔记【十五】 基本几何体的绘制
本文由zhangbaochong原创,转载请注明出处http://www.cnblogs.com/zhangbaochong/p/5573970.html 前面实现简单地形的教程,我们只是绘制了一个网 ...
- 【Java GUI】Java GUI基金会
AWT和Swing Swing是个AWT改进和扩展. 书写GUI规划.Swing和AWT曾效力.他们共存 Java基础类(JFC)于. 虽然AWT和Swing都提供了构造图形界面元素的类.但它们的虫药 ...
- URAL 1553. Caves and Tunnels 树链拆分
一颗树 每次出发点右键值是0 2操作模式1.第一i右键点值添加x 2.乞讨u至v在这条路上右上方值 树为主的连锁分裂称号 #include <cstdio> #include <cs ...
- ISAPI_Rewrite 3 伪静态软件
下载地址 http://www.helicontech.com/isapi_rewrite/download.html
- MySQLHA系列MHA(一)
MHA,这是Master High Availability Manager and Tools for MySQL,一个日本MySQL专家们使用Perl语言编写的一个脚本管理工具.该工具仅适用于My ...