最近有对一个Windows应用程序少量维护和修改。修改以后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下。php
Visual Studio版本:Visual Studio 2017html
Visual Studio 2017 打包插件
新建项目->其余项目类型->Visual Studio Installer->Setup Project
若是其余项目类型中没有选项(Visual Studio Installer),点击“工具”,选择“拓展和更新”,点击联机,搜索“Microsoft Visual Studio 2017 Installer Projects”,安装该插件。
git
选择主输出
新建项目以后,默认自动打开File System,右键点击Application Folder,添加输出,选择主输出
web
建立快捷图标
右键点击“主输出 from xxx”,选择“Create ShortCut to 主输出 from xxx”,新增快捷方式,能够从新命名。选择快捷方式,左键长按拖动至User’s Desktop
右键点击快捷方式,选择属性窗口
可自选快捷方式的显示图标icon
bootstrap
自定义操做
右键点击项目
若是该项目由必选的驱动须要安装,能够将该驱动安装exe文件添加到Application Folder中,选择添加“自定义操做”,选择该驱动安装文件,会在执行文件时,调用驱动的安装。
app
插件的好处和缺陷
好处:Visual Studio 2017自带插件,使用方便,比下载安装其余打包软件要方便的多。
缺陷:(下述缺陷极可能是由于,我没有弄清楚该插件的深刻使用方法)svg
驱动安装流程执行结束以后,没法继续主安装流程。
没法将所需framework环境打包进exe文件。
打包.NET Framework环境
生成的时候,报错,点击提示的报错,跳转至微软官网如何:建立本地化的引导程序包
看文档看半天并不能解决。搜索了好久,终于找到一篇文章【C#】vs2017 发布工具 Visual Studio Installer 发布包遇到的问题处理经验
按照该文章的方式找到路径:
C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX461
将下载的文件NDP461-KB3102436-x86-x64-AllOS-ENU.exe复制到该路径下。
最后虽然能生成成功,可是并非我想要的打包成一个exe文件,很显然,可能须要对插件更了解吧,我是没找到解决办法。工具
InstallShield
官网
又是一番折腾,下载安装,InstallShield安装包不小,下载和安装的时间花费不短。
参照使用InstallShield打包windriver驱动
下载地址:InstallShield 2018(软件打包工具)
很不幸,证书是2016的,不是2018的,最后打包的时候会出现报错:Failed to verify digital signature of IsUiServices.dll
报错相似: InstallShield 2015 错误 Failed to verify digital signature of IsUiServices.dllvisual-studio
InstallShield 的优势和缺点
功能强大是优势,也是缺点,由于功能强大也意味着操做复杂。flex
Inno Setup
官网
Inno Setup操做简单,最后会生成一个后缀iss的脚本文件。
能够本身写function。对我来讲,可能会更喜欢GUI操做。Advanced Installer闪亮登场。
Advanced Installer
下一篇文章着重介绍Advanced Installer,很是好用,推荐指数五星。