这几天一直在做一个Web程序的安装包,使用VS做安装程序需要注意的一些问题:
1. 关于两种Setup项目
VS 安装程序项目模板有一个Setup Project,还有一个是Web Setup Project。如果你的Web程序可以安装在C:/inetput/wwwroot下,那么使用Web Setup Project没什么问题,因为那是它的默认安装路径,且不能修改。这也是我放弃使用Web Setup Project的原因,因为客户要求程序文件要安装在C:/Program Files/ComanyName/ProductName/目录下。
2. 关于自定义Banner图片
安装向导界面的自定义Banner的图片大小是500x70,如果需要自定义的Banner,例如替换掉那个向导右上角默认的logo,可以用PS建一个500x70的图片,在图片右上角添加自己的logo。如果图片大小不是500x70会被强制压缩或拉伸为500x70,这样会影响图片显示质量。
3. 关于Custom Action
使用前面提到的Setup Project安装web程序,就要自己写custom action来创建IIS站点,虚拟目录。即使使用Web Setup Project默认的会帮你创建站点及虚拟目录,但是IIS虚拟目录的验证方式等使用的是默认配置(允许匿名登录),如果你的程序使用的是其他验证方式,还需要custom action来对IIS进行操作。
Custom Action 其实就是自定义的Class 只不过需要继承自System.Configuration.Install.Installer类
根据需要可重新该类的Install, Commit, Uninstall, Rollback等方法。这四个方法对应的就是Custom Action编辑器中的四种custom action类型
需要注意,custom action执行的时机:
Install
Custom actions placed under this node will be executed at the end of the install phase of installation, after all files have been installed.
Commit
Custom actions placed under this node will be executed at the end of the commit phase of installation, which occurs when the install phase has finished without errors.
Rollback
Custom actions placed under this node will be executed at the end of the rollback phase of installation, which is triggered when an installation error occurs.
Uninstall
Custom actions placed under this node will be executed at the end of the uninstall phase of installation, which occurs when an application is uninstalled.
因此,创建IIS虚拟目录的custom action应该是Install类型的,而安装结束后,打开应用程序首页的custom action应该是Commit类型。
4. 关于Custom Action的参数传递
安装向导与自定义的custom action直接的参数传递,例如用户在安装向导中配置的虚拟目录名称,可通过Custom Action Data
来传递。Setup项目中有许多内置的属性
,可直接作为参数使用。Web Setup 中还有自己特有的属性 TARGETVDIR, TARGETSITE 分别表示IIS虚拟目录名,IIS站点名。此外你还可以设置自定义的属性,并作为参数供custom action使用,例如用户在安装向导中输入的数据。
若要传递参数给Custom Action,需要在Custom Action编辑器中,选择你的Custom Action > 属性,在CustomActionData属性条码中配置,例如, /domain="[DOMAIN]" /dgroup="[DGROUP]"
其中 DOMAIN 及 DGROUP就是我的自定义向导界面中的两个输入框对应的属性值。
在Custom Action类中可通过如下代码,来获得用户输入值:
string domain = context.Parameters["domain"];
string domainGroup = context.Parameters["dgroup"];
5.关于web程序快捷方式
可是在安装文件中添加一个shortcut.cmd文件:Start http://localhost/myapp/default.aspx
然后就可以在VS中创建基于这个.cmd的快捷方式了。在VS2008安装项目的文件系统编辑器中,创建用户程序菜单的快捷方式,可以先右键那个.cmd文件,选择创建快捷方式,然后将该快捷方式拖到[用户程序菜单]下面。
分享到:
相关推荐
主要介绍了详解在React项目中安装并使用Less(用法总结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
可行性研究报告、需求分析、安装与操作使用手册、测试分析报告、数据要求说明书、项目开发总结报告
maven管理项目从安装到使用过程,同时带有总结,做项目少不了管理,如果只是做一个hello world项目,那当然你可以不用考虑使用maven等来管理项目,但是你应该不会只做着娱乐,所以有必要学习maven等管理项目的方法
资源前后端分离式分布式微服务架构项目DevOps项目总结讲义+源码+视频 DevOps介绍 理解 理解DevOps概念 Git/GitLab 应用 能够使用Git管理项目代码 "理解Git与GitLab的作用能够将项目代码提交到GitLab能够从GitLab检...
实验八、Spark的安装与使用.doc
maven管理项目从安装到使用过程,同时带有总结,做项目少不了管理,如果只是做一个hello world项目,那当然你可以不用考虑使用maven等来管理项目,但是你应该不会只做着娱乐,所以有必要学习maven等管理项目的方法 ,...
软件工程模版:可行性研究报告、需求分析、安装与操作使用手册、测试分析报告、数据要求说明书、项目开发总结报告
这是我自己总结出的Intouch使用入门,这个入门教程从INTOUCH 工程创建、应用过程角度出发,可以说是图文并茂,看完后让你对INTOUCH 有更深入的了解。 1、安装 Intoch软件; 2、安装 Intouch 授权 3、IOServer ...
基于JAVA的教学进度在线管理系统、教学大纲在线管理系统源代码+数据库,含详细项目需求分析、概要设计、详细设计及项目总结文档,可用得毕业设计 使用 SQL_Scripts/tms.sql 中的 sql 语句创建数据库与数据库表...
项目总负责人(光启公司信息安全部总监):负责项目总体计划的制定、项目启动会议的主导、关键项目节点协调、管理流程制定,项目总结汇报等环节; 项目经理(客户方文档安全项目负责人/IP-guard项目负责人):负责...
软件工程常用文档模板及示例:项目计划、需求分析、概要设计、详细设计、用户操作手册、测试计划、测试分析报告、开发进度报告、项目开发总结报告、软件维护手册等。 一、计划阶段 01 项目信息表 项目信息表 - 模板...
这是本人自己在项目中使用过后的总结,及遇到的问题处理方法,以及git和svn的对比说明,希望给大家可以带来帮助;(备注:下载后对里面不明白的地方可以留言,我会进行解答)
我们项目验收全套文档,未删除任何内容,方便参考。压缩包中同时提供标准文档模版。 压缩包内容 01_需求分析报告.doc ...08_项目总结报告.doc 总结汇报PPT.ppt 正式-系统验收意见.doc 全套项目验收文档模版.rar
一、实验名称 使用网络模拟器packetTracer 二、实验目的: 1. 掌握安装和配置网络模拟器PacketTracer的方法; 2. 掌握使用PacketTracer模拟网络场景的基本方法,加深对网络环境,网络设备和网络协议交互过程等方面的...
实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下Git的相关用法,废话不多说,直接开写。 目的:通过Git管理github托管项目代码 一、下载安装Git 1、下载Git 官方地址为:...
很多人用JFM播放MP3遇到问题,根本原因是设置问题。 这是本人使用JMF的心得,附带框架安装程序、项目、jar, all in one!
视频压缩-ffmpeg-的使用总结,总结了如何下载源码,如何编译,如何安装x264解码器,如何设置依赖包的搜索路径。试验的操作系统为centos7.6
essay是我们团队在过去两年Python项目持续部署上经验的总结,核心功能是打包和多Server部署。这个工具的主要功能是简化从开发到部署的流程,方便服务器的扩展。除了打包和部署功能之外,essay还提供了其他的工具,在...
Solr 版本是4.9.0 最新版,因为每个版本都有不同程度差异,所以教程种类繁多,大都是1.X的教程,根据自己项目进度,总结了一些,分享给大家