基于DevExpress的Winform程序安装包的制作-程序员宅基地

技术标签: c#  开发工具  操作系统  

在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装。安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件导致系统运行出错。本文主要介绍基于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工具进行安装包制作了。两者制作的总体思路和配置信息是差不多的,不过使用界面和方式有所差异,习惯就好。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33911824/article/details/86215542

智能推荐

html输入框只能输半角,JS INPUT输入的时候全角自动转为半角-程序员宅基地

文章浏览阅读931次。function CtoH(obj){var str=obj.value;var result="";for (var i = 0; i < str.length; i++){if (str.charCodeAt(i)==12288){result+= String.fromCharCode(str.charCodeAt(i)-12256);continue;}if (str.charCod..._input 只能输入半角数字

Python实现中英文翻译功能-程序员宅基地

文章浏览阅读1k次。# 请输入你要翻译的内容key = input('请输入您要翻译的内容:')# 把提交的form表单的数据转换为bytes类型的数据data = { 'i': key, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': '...

java多层嵌套对象实例化,Java中 外部类如何对嵌套类进行实例化-程序员宅基地

文章浏览阅读658次。问题:1.B类被A类嵌套,那么在C类中如何调用B类的成员呢?2.外部类如何对嵌套类进行实例化?带着这2个问题,我举例说明如下,如果您对嵌套类有更深入的理解和心得,别忘了与大家分享./*远外部类访问内部类(嵌套类)为了区分层次关系,远外部类是我自己定义的.*/class Ot //相对Bt类来说,Ot类是个外部类{int ot_j=10;class Bt{String bt_j="扪心自问,你努力了..._java中a类有一个b类如何实例化b

netty 游戏服务器框图_Java学习路线流程图-程序员宅基地

文章浏览阅读75次。Java任然是比较火爆的编程语言,很多人想要学习Java开发,但是面对Java编程语言不知道从何学起,今天小编就详细的给你你介绍一下Java编程语言的一些相关知识,希望对于正在学习的你有所帮助关于语言如果学Java学得不舒服了,学Python。如果对面向对象编程的概念有点不习惯,学Smalltalk。(Ruby也行,但不如Smalltalk经典。Ruby的文档是一大硬伤。)如果嫌Java太啰嗦,学..._java netty 游戏地图

can总线短距离不用双绞线_CAN 总线(一) 物理层—屏蔽双绞线-程序员宅基地

文章浏览阅读806次。1、物理层一般要求1.1物理层物理层实现网络中电控单元(ECU)的电连接。ECU的数目限制于总线线路的负载承受能力。根据本部分的电气参数定义,在特定网段上ECU的最大数目定为30。1.2物理介质物理介质为屏蔽双绞线。双绞线特性阻抗为120Ω,电流对称驱动。两条线分别命名为CAN_H和CAN_L。相应ECU的管脚引线也分别用CAN_H和CAN_L来表示。第三条连接屏蔽终端的线用CAN_SHLD表示。..._can双绞线特性阻抗不满足

HttpDNS 服务详解(转)_httpdns 探活-程序员宅基地

文章浏览阅读248次。但凡使用域名来给用户提供服务的互联网企业,都或多或少地无法避免在有中国特色的互联网环境中遭遇到各种域名被缓存、用户跨网访问缓慢等问题。那么对于腾讯这样的域名数量在10万级别的互联网公司来讲,域名解析异常的情况到底有多严重呢?每天腾讯的分布式域名解析监测系统在不停地对全国所有的重点LocalDNS进行探测,腾讯域名在全国各地的日解析异常量是已经超过了80万条。这给腾讯的业务带来了巨大的损失。为此腾讯_httpdns 探活

随便推点

OpenCV人脸识别项目(训练+测试)_opencv人脸识别模型训练-程序员宅基地

文章浏览阅读2.6k次,点赞9次,收藏66次。OpenCV人脸识别项目(训练+测试)_opencv人脸识别模型训练

客户端无法访问esxiweb解决方法_esxi无法访问管理页面-程序员宅基地

文章浏览阅读9k次。在真机按f2进入配置环境打开shellAit+f1进入命令行环境/etc/init.d/hostd status/etc/init.d/hostd start可以正常进入了_esxi无法访问管理页面

Vue项目img标签图片加载失败/显示不成功,显示默认图片_vue img图片加载失败回调-程序员宅基地

文章浏览阅读1.1k次。直接在img上加@error,代码如下 <img :src="form.url" alt="" @error="imgError" > /** 图片错误 */ imgError() { this.form.url = ''// 自己默认的url },_vue img图片加载失败回调

android 自动下载软件安装程序,手机自动安装软件怎么办-程序员宅基地

文章浏览阅读3.1k次。语音内容:大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。手机自动安装软件的解决方法是:1、下载lbe大师。2、下载完成之后,在手机上找到应用图标并且点击打开。3、在首页的功能区看到有“软件管理”选项,点击之后就会跳转到新的页面。4、在该页面下,找到“软件自动安装监控”,点击该项以后,就会要求选择监控模式,系统默认的是“允许自动安装”,将其切换到“禁止自动安装”。5、以后所有的..._手机自动下载怎么解决

关于unity场景切换后模型变黑问题_unity中ui字体变黑-程序员宅基地

文章浏览阅读4.5k次,点赞4次,收藏8次。unity5系列的 点击window-lighting-setting 取消勾选自动烘焙(auto),将模式改为build,unity2017-以后 取消勾选后,点击Generate Lighting,进行烘焙,保存贴图数据。出现这一问题一般是场景切换,灯光若是自动烘焙,切换后无法加载光影数据导致。..._unity中ui字体变黑

如何关闭华为手机连接电脑自动弹出cd驱动器和类似文件管理文件夹_cd驱动器(h:)hisuite-程序员宅基地

文章浏览阅读1w次,点赞9次,收藏8次。关闭cd驱动器华为手机助手_cd驱动器(h:)hisuite

推荐文章

热门文章

相关标签