编辑器加载中...
[资源共享] 浅谈.Net程序的安装与部署
写了大半年程序了,最近才开始真正意义上考虑程序的部署。介于.net程序集自我描述的特点,.net程序的部署还是比较简单的。vs自带的安装部署功能也比较全面。基本上能满足一般应用程序的部署。以下由浅入深、由简到繁的介绍我所知道的四种打包方法:
1.直接拷贝Debug目录下的文件到目标机上
这是最简单的一种方法,因为.net程序集都是自我描述的,不依赖与注册表,所以只要目标机器安装了相应的.netframework,程序就能运行起来。还有一点要注意的是把程序中引用到的DLL(如引用的界面库等)都输出到Debug目录下;具体操作为:选择要输出到debug目录的引用(可以多选),属性栏复制到本地项设置成"TRUE"。
2.WinRar打包
这是我前几天在3Snews论坛看到的一个engine打包方法,不要误以为只是把方法1的Debug做成一个WinRar压缩包而已。除了压缩文件外WinRar还能自定义在解压缩前或解压缩后执行的动作,比如我们可以设置在解压缩前判断满足安装条件,安装后创建快捷方式或注册DLL,只要你想得到的都可以实现。前提是把想要做的事件写出批处理或别的exe文件。
有两个要点:
1.创建自释放格式的档案文档,打包后的后缀名为.exe而非.war
2.高级-SFX选项;设置释放前/后要执行的批处理.bar或则exe文件.我们可以将我们想做的任何事情写在批处理或其他可执行文件中,比如让程序先判断安装.NetFramework。
详见:http://www.3snews.net/bbs/viewthread.php?tid=3384&extra=page%3D1
3.用vs自带的安装与部署工具
操作类似与建立一个普通的VS工程,这个简要描述一下,百度一搜:“VS2005 安装与部署”能搜出好多来:
1.新建项目-其他项目类型-安装和部署;
2.添加需要安装的文件,此时要注意文件的相对路径;有个不好的就是当我们添加一个文件进去的时候系统会自动把相关联的其他文件也引用进来。有时候这不是我们希望的。
3.建立快捷方式,在目标文件夹中右击要建立快捷方式的文件,建立快捷方式,拖动到“用户的程序菜单”“用户桌面”就OK了;
4.建立删除快捷方式,用VS建立起来的安装包卸载过程根本不用我们去操心,而是调用系统文件夹下的msiexec.exe自动进行程序的反安装;所有我们把msiexec.exe添加到安装文件夹下简历快捷方式,设置arguments 设置成 /x ProductCode ,ProductCode为安装包的产品号;结果类似/x{04EA8876-A47F-40DD-B998-9BF5C9574AEF}; 还有个办法就是写一个Msiexec /x ProductCode 批处理添加进来也一样。道理一样,将快捷方式属性ShowCmd设为vsdscMinimized,以便批处理运行时隐藏命令窗口。
5.安装包项目-属性-系统必备;勾选.netframework2.0 ;指定安装位置为“与我应用程序相同位置下载系统必备组件” 安装的时候系统会自动检测framework2.0是否安装,如果没有则先安装framework.
6.编译后的setup.exe和setup.msi 就可以直接运行了。
4.使用第三方打包软件
VS自带的安装与部署只能满足一般的需求,一般比较专业的应用程序会采用第三方打包软件,如setupfactory,installshield,wise等。用的最多的好像是installshield,采用脚本的方式在安装的时候可以自定义各种条件判定和安装操作,甚至自动建立数据库。
更多请参见:
http://hi.baidu.com/murphy1314/blog/item/f87a0ba99e6499fb1e17a2ed.html
InstallShield打包Engine方法改进:
http://hi.baidu.com/murphy1314/blog/item/a4c7524c3bb48ffed62afc66.html