基于DevExpress的Winform程序安装包的制作
在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装。安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件导致系统运行出错。本文主要介绍基于DevExpress的Winform程序安装包的制作内容,包括VS2010和VS2013/V2105的不同处理方式。
我们知道,VS2010是最后一个可以使用微软安装包制作工具的VS版本了,所以后面VS2012/2013/2015版本都需要使用第三方安装包制作工具,微软推荐使用Install Shield打包工具,本文以这两个环境进行介绍安装包的制作出来。
1、VS2010使用微软安装包制作工具
在该版本及之前的VS 开发工具,都是使用微软自带的安装包工具进行打包,方便快捷,虽然也听说过 Install Shield等大名鼎鼎的安装包制作,但是集成的东西,总是感觉方便一些,而且也能够应付大多数的安装包制作情景,不知道为什么微软把它从后续的版本中移除。
不过庆幸VS2010版本还是继续能够使用其内置的安装包制作工具,本小节介绍的就是基于这个内置安装包制作工具做我们的DevExpressWinform程序。
1)准备好待发布的安装文件
做安装包的时候,一般可以使用项目引用的方式来构建(如活动项目输出的方式),不过我们可能需要对生成的DLL进行一下混淆等特殊处理,所以一般我们是创建一个目录来放置需要发布的文件的。如下所示,我在Bin目录下创建一个DeployedMis的目录,用来存储待发布的文件的。

然后我们在Debug或者目录里面,把对应的exe或者DLL文件进行混淆操作,我们一般可以选.NET Reactor混淆工具进行处理一下,如下所示。

然后我们把生成的Debug目录的文件复制一份到DeployedMis目录,并把混淆生成的文件替换原有的文件就可以了。最后顺带捎上汉化文件(如zh-Hans目录里面的文件)、RDLC报表文件、Excel导入模板和其他资源文件,如下图所示。

2)制作VS安装包
目前我们就准备好发布的文件了,接下来的就是要启动安装包的制作方面的事情了,先在VS解决方案里面创建一个VS安装包工程项目,如下所示。

然后设置好安装包的一些基础信息,如公司信息、产品名称等关键信息,也就是在安装包的项目里面打开属性,得到界面如下图所示。


然后我们在文件系统视图里面,创建相关的目录,并加入相关的文件,注意【应用程序文件夹】目录下的文件就是我们安装到客户目录的文件内容,在这里加入一些主程序exe,然后会自动引入一些DLL的文件的,所以最终得到下面的工程界面截图。

我们在exe的主程序上面右键,创建一个快捷方式,设置好图标后,复制到用户桌面就会成为一个快捷方式的连接了。

如果我们需要为程序添加一个卸载快捷方式,那么我们在【应用程序文件夹】里面加入C:\Windows\System32\msiexec.exe的系统文件,然后创建一个它的快捷方式,复制到对应的目录上,如下界面所示。

卸载的快捷键还需要设置一些安装包的产品ID才能进行卸载处理,如下所示。

其中属性需要设置Arguments参数为:-x {CB83AA8B-4504-48FF-BF3B-E269CC3244EA},其中-x后面的参数就是我们安装项目的ProductCode内容。

弄好这些,我们编译整个安装包就可以生成一个符合实际生产需要的安装包了,安装包同时也具有程序的卸载功能快捷键了,在Win10系统中的菜单如下图所示。

有时候,为了方便检查是否主程序的自动引用少了某些文件,我们还可以检查【检测到的依赖项】列表,查核是否少了某些文件,如果都符合,那么就肯定没问题了。

如上图所示,我们看到添加主程序后的自动检测的引用文件,就包含了DevExpress的相关DLL了,这样我们做成安装包后,客户安装这个安装包就可以使用DevExpress的界面内容了,而不需要在客户端完整的安装一套DevExpress组件了。
2、VS2013及以上,使用InstallShield安装包制作工具
在VS2013上,我们就需要使用InstallShield进行安装包制作了,我曾经在之前的博客里介绍过利用InstallShield制作安装包的操作《基于InstallShield2013LimitedEdition的安装包制作》,在使用VS2013创建安装包之前,我们需要安装一个InstallShield的版本,其中LimitedEdition是一个可以申请免费账号使用的版本,当然专业版InstallShield是收费,而且费用也不低的了。使用LimitedEdition,我们也可以创建一般的安装包,本文主要介绍基于LimitedEdition版本的安装包制作。
安装完毕LimitedEdition版本后,我们可以在VS的新建项目里面,有一个安装包的创建工程模板了。

在做基于DevExpress的Winfrom系统InstallShield安装包,我们一样要做上面的事情,就是需要准备一个专门的目录用来放置编译并混淆好的DLL,这样我们在InstallShield LimitedEdition加入主程序的时候,会自动引入所需的DLL以及方便添加所需的资源文件了。


InstallShield工具提供了辅助的各个步骤的操作,基本上我们按照要求处理就可以实现了,具体操作指引界面如下所示。

例如,我在云会员系统的客户端安装包,就是使用这个InstallShield工具进行打包的,设置主安装项目的信息如下所示。

在安装包的制作过程中,最为关键的就是所需文件的添加处理了,如果添加正确,就能正常进行编译、安装操作,否则就容易编译过不了。
我们在【Application Files】里面,添加所需的文件,主要添加主程序以及所需的一些文件,相关的引用DLL可以通过依赖进入。操作如下所示。

如果我们单击左边【Files and Folders】,我们就可以更加详细的操作整个安装包的文件和目录内容了。
如可以查看主程序文件的依赖文件操作。

单击上图右键菜单的【Dependencies from scan at build...】的时候,我们可以看到主程序集带入的相关DLL引用,里面有很多DevExpress相关的DLL,我们可以通过检查这个列表,确认是否少了一些特殊的DLL引用,如果少了,我们再添加对应的文件到安装包目录里面就可以了。

接着可以在其他步骤增加快捷方式,如增加启动程序、卸载程序的快捷方式,如下所示。

我们也可以通过【Shortcuts】功能进入更加直观的界面显示,如下所示。

以及图标修改等操作,还有就是可以修改修改默认安装界面,最后可以得到安装包的界面如下所示。



以上就是两种不同方式的安装包制作的过程,希望能够帮助您在使用并发布DevExpress程序的时候有所帮助,也就是如果在VS2010上开发,我们可以使用微软内置的安装包制作工具,如果是VS2012、VS2013、VS2015等版本上,我们就可以使用InstallShield工具进行安装包制作了。两者制作的总体思路和配置信息是差不多的,不过使用界面和方式有所差异,习惯就好。
基于DevExpress的Winform程序安装包的制作的更多相关文章
- C#软件winform程序安装包制作及卸载程序制作
使用vs2010 winform程序开发的软件的人比较多,程序的开发是为了在不同的人不同的机器使用,为了使不同的机器能使用该软件就需要在制作程序安装包,安装包里必须包含该软件运行所选的所有环境,下面就 ...
- 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)
转载自: DGPLM博客 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)
- 总结开发中基于DevExpress的Winform界面效果
DevExpress是一家全球知名的控件开发公司, DevExpress 也特指此公司出品的控件集合或某系列控件或其中某控件.我们应用最为广泛的是基于Winform的DevExpress控件组,本篇随 ...
- Mac OS平台下应用程序安装包制作工具Packages的使用介绍
一.介绍 Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Ins ...
- 使用WinRar软件制作程序安装包
之前我写过使用好压软件打包程序,见随笔: 使用好压(HaoZip)软件打包EverEdit制作安装程序 - Fetty - 博客园http://www.cnblogs.com/fetty/p/4907 ...
- 用inno Setup做应用程序安装包的示例脚本(.iss文件)(
用innoSetup做应用程序安装包的示例脚本(.iss文件),具体要看innoSetup附带的文档,好象是pascal语言写的脚本. 示例1(应用程序.exe,客户端安装): ;{089D6802- ...
- 【原创】VB6.0应用程序安装包的生成(Setup Factory 9.0制作安装包的方法)
VB6.0应用程序安装包的生成,利用其自带的打包工具生成的安装程序很简陋,一点不美观:如果想让自己的应用程序安装的时候显得高大上一点,本教程提供使用Setup Factory 9.0制作安装包的方法. ...
- 制作Linux下程序安装包——使用脚本打包bin、run等安装包
制作简单的安装包的时候可以简单的用cat命令连接两个文件,然后头部是脚本文件,执行的时候把下面的文件分解出来就行了.一般这个后部分的文件是个压缩 包,那样,就能够打包很多文件了,在脚本中解压出来即可. ...
- php实现在线下载程序安装包功能
在线下载程序安装包可以很方便在服务器端下载各种程序安装包(Discuz!.phpwind.Dedecms.WordPress....等一些常用程序)并存储在服务器,大大减少站长上传程序安装包时间.默认 ...
随机推荐
- ASP.NET Core 十种方式扩展你的 Views
原文地址:http://asp.net-hacker.rocks/2016/02/18/extending-razor-views.html 作者:Jürgen Gutsch 翻译:杨晓东(Savor ...
- HaProxy+Keepalived+Mycat高可用群集配置
概述 本章节主要介绍配置HaProxy+Keepalived高可用群集,Mycat的配置就不在这里做介绍,可以参考我前面写的几篇关于Mycat的文章. 部署图: 配置 HaProxy安装 181和1 ...
- 【Paddy】数据库监控系列(一) - 监控理念
很多时候,都和身边朋友聊两个问题,DBA的日常工作都是哪些?什么才是数据库方面最重要的? 我相信这两个问题的答案每个人都不会完全一样,我也是,所以这里只代表我的个人观点,并且以下的内容将围绕我的思路展 ...
- DataGrid中的常用属性
DataGrid中的常用属性 $('#dg').datagrid({ url:'datagrid_data.json', columns:[[ {field:'code',title:'Code',w ...
- python django基础(一)
Django简介:Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M,视图V和控制器C.不过在Django实际使用中,Django更关注的是模型(Mod ...
- uwp 图片切换动画
最近在学习安卓,LOL自定义战绩项目近乎停工,而且腾旭把界面全改了,好烦.刚好学习到安卓中的图片切换动画,我就想在LOL项目中实现一个.首先上百度查看一下,妈的,资料少的可怜. 还是自己来吧.自定义控 ...
- 前端组件化Polymer入门教程(8)——事件
可以在listeners对象中监听事件 <x-custom></x-custom> <dom-module id="x-custom"> < ...
- Unity 文件读取
存储: 在程序发布后文件的存放有两种,第一种是打包到Uniyt的资源包中(*.unity3D),第二种就是把文件存放在一个特殊的目录如:StreamingAssets,这个目录的东西Unity不会打包 ...
- Web APi之过滤器执行过程原理解析【二】(十一)
前言 上一节我们详细讲解了过滤器的创建过程以及粗略的介绍了五种过滤器,用此五种过滤器对实现对执行Action方法各个时期的拦截非常重要.这一节我们简单将讲述在Action方法上.控制器上.全局上以及授 ...
- EntityFramework之孩子删除(四)(你以为你真的懂了?)
前言 从表面去看待事物视线总有点被层层薄雾笼罩的感觉,当你静下心来思考并让指尖飞梭于键盘之上,终将会拨开浓雾见青天.这是我切身体验. 在EF关系配置中,我暂且将主体对象称作为父亲,而依赖对象称作为孩子 ...