C#进阶系列——使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)
前言:大过年的,写篇文章不容易,还是给自己点个赞~~年前找了下.net安装包的制作方法,发现Visual Studio自带的制作工具使用起来非常麻烦,需要单独下载安装包,并且什么激活认证等等屁事相当麻烦,最坑爹的是它的自定义dialog使用起来有很多的局限性,所以找了很久,终于找到了Advanced Installer。摸索了两天,算是掌握了一些基本的方法,在此做个记录。相信对于需要使用的园友来说绝对是干货,不信可以看看。
本文原创地址:http://www.cnblogs.com/landeanfen/p/6359156.html
一、基础用法
关于Advanced Installer的基础用法,网上真的是可以搜到太多,博主就不做过多描述,由于要用到自定义安装包的过程,需要新建dialog,博主用了破解版的企业模板,Advanced Installer的版本是13.5。
首先新建模板里面选择Enterprise。

需要设置的几个关键点如下:
添加安装包的文件和文件夹

如果是Web安装包,需要设置IIS的相关信息,这个网上非常多的资料,不做过多说明。

自定义dialog,注意这里必须要是企业版的模板才有这个功能。


二、设置IIS网站的网站名、IP、端口号
如果仅仅是上述这些东西,本文是没有太大价值的。以上只是铺垫,下面才是本文要说的重点。
可以自定义dialog,动态配置IIS的网站名、绑定IP、端口。
1、新建dialog,拖出安装过程中dialog的外观,相信有winform经验的我们来说,这个再简单不过了。比如下面的效果:

记住各个文本框的属性名,比如这里的网站名称对应的文本框的属性名为EDIT_2_PROP_1。

我们暂且记住这个属性名,来到IIS选项卡里面,我们这么配置:

原来,在Advanced Installer里面,使用中括号[]将控件的属性名括起来表示变量的概念,这点对于咱们程序员来说应该不难理解。这么说是不是很好理解了呢~~然后,我们用同样的方法设置IIS网站的绑定IP和端口号。


这样设置之后,我们在安装过程中就可以去动态配置IIS的网站名、IP、端口。就是这么简单,是不是很神奇~~
三、动态配置Web.config
在安装过程中,我们最常配置的还有Web.config配置文件,在Advanced Installer里面可以方便的配置xml文件。赶快来看看吧。
首先看看Web.config里面的内容。

在添加文件的时候,如果我们添加的文件类型是xml,Advanced Installer会提示你是否转成可配置的xml。比如我们在Web.config文件上面右键,选择Properties。


再来看看这里的[EDIT_1_PROP]是哪里来的。

有了上文的基础,这个应该不难理解了吧。没错,就是通过这种变量的形式去动态配置的。这里只是配置了一个简单的appsetting作为示例,可能实际环境中使用最多的就是动态去配置connectionstring了,如果有兴趣可以试试,和以上的步骤基本相似。当然,之前在园子里看到一个通过自定义dll去配置web.config的示例,略显麻烦。还是这样简单。
做了这些准备工作之后,我们的安装包基本就做完了。编译运行之后,经过一步一步傻瓜式的安装之后,即可动态去配置这些东西,不信你试试~~
四、总结
以上通过简单的一个实例配置了一下IIS和Web.config,有时间可以进一步介绍下通过dll的方式操作界面的控件的方法。
如果你觉得本文能够帮助你,可以右边随意 打赏 博主,也可以 推荐 进行精神鼓励。你的支持是博主继续坚持的不懈动力。
本文原创出处:http://www.cnblogs.com/landeanfen/
欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利
C#进阶系列——使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)的更多相关文章
- C#进阶系列——使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)
前言:上篇C#进阶系列——使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)介绍了下使用Advanced Installer配置IIS和Web.confi ...
- 最近上传图片上传文件报413错误及仅Https下报413问题,IIS高版本的配置方案及Web.config配置全解
IIS文件上传大小限制30M,C盘中有的IIS_schema.xml文件 C:\Windows\System32\inetsrv\config\schema\ 但是考虑到安全等问题,而且这个文件默认是 ...
- 使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)
前言:上篇使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)介绍了下使用Advanced Installer配置IIS和Web.config的过程,操作起 ...
- 使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)
前言:大过年的,写篇文章不容易,还是给自己点个赞~~年前找了下.net安装包的制作方法,发现Visual Studio自带的制作工具使用起来非常麻烦,需要单独下载安装包,并且什么激活认证等等屁事相当麻 ...
- 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解
关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...
- Advanced Installer 制作.NetWeb部署安装包
原文:Advanced Installer 制作.NetWeb部署安装包 因为是.Net的Web应用程序,所以想用Advanced Installer 调用Dll实现安装部署. 因为我需要自己定制参数 ...
- 使用Qt Installer Framework制作软件安装包
概述 Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具.包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制作 ...
- DevExpress控件库 开发使用经验总结3 制作项目安装包
2015-01-27 使用DevExpress控件包开发C/S项目完成后,部署前需要制作本地安装包.本文还是使用“SetupFactory”安装工厂来制作安装包.在以前的系列文章中详细介绍过该工具的使 ...
- 使用WinRar软件制作程序安装包
之前我写过使用好压软件打包程序,见随笔: 使用好压(HaoZip)软件打包EverEdit制作安装程序 - Fetty - 博客园http://www.cnblogs.com/fetty/p/4907 ...
随机推荐
- 二叉堆(C#)
参考:http://www.cnblogs.com/skywang12345/p/3610390.html using System; using System.Collections.Generic ...
- MySQL 1054错误 Unknown column .... in 'on clause'
ERROR 1054 (42S22): Unknown column ... in 'on clause' 原因: MySQL5.0 Bug, 要把联合的表用括号包含起来才行: 例: SELECT ( ...
- STM32应用笔记转载
stm32 外部中断嵌套[操作寄存器+库函数] stm32 NVIC中断管理实现[直接操作寄存器] stm32 SPI通信[操作寄存器+库函数] stm32 i2c通信 [操作寄存器+库函数] stm ...
- js-权威指南学习笔记9
第九章 类和模块 1.在JS中,类的实现是基于其原型继承机制的,如果两个实例都从同一个原型对象上继承了属性,我们说它们是同一个实例. 2.常见的编程约定:定义构造函数既是定义类,并且类名首字母要大写. ...
- windows下查找指定端口被哪个程序占用
在Windows环境下,用netstat命令查看某个端口号是否占用,为哪个进程所占用. eg.查看端口号为61078被哪个程序占用 1.查看端口号为61079被哪个PID所占用:Netstat –an ...
- ANSI标准
NSI:美国国家标准学会(AMERICAN NATIONAL STANDARDS INSTITUTE: ANSI)成立于1918年.当时,美国的许多企业和专业技术团体,已开始了标准化工作,但因彼此间没 ...
- kvm学习小计
1.Kvm安装 安装方法两种方式,一种是直接下载源码编译安装,一种是直接使用yum install kvm/apt-get install kvm,这部分就不详细说明了,我使用的是第二种方法,待后 续 ...
- 【转】每一个程序员需要了解的10个Linux命令
作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息.本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助. 以下就是今天我们 ...
- jstree使用小结(二)
继续上一篇: 1.数据 按照官网的json数据返回格式: 有两种格式,我使用的格式如下: $('#jstree1').jstree({ 'core' : { 'data' : [ { "id ...
- iOS 导航栏不可点击
self.navigationController.navigationBar.userInteractionEnabled = NO;