最近有对一个Windows应用程序少许维护和修改。修改之后要发布新的exe安装文件,打包exe文件时,遇到了很头疼的问题,还好最后解决了,记录一下。

Visual Studio版本:Visual Studio 2017

Visual Studio 2017 打包插件

新建项目->其他项目类型->Visual Studio Installer->Setup Project

如果其他项目类型中没有选项(Visual Studio Installer),点击“工具”,选择“拓展和更新”,点击联机,搜索“Microsoft Visual Studio 2017 Installer Projects”,安装该插件。

选择主输出

新建项目之后,默认自动打开File System,右键点击Application Folder,添加输出,选择主输出

创建快捷图标

右键点击“主输出 from xxx”,选择“Create ShortCut to 主输出 from xxx”,新增快捷方式,可以重新命名。选择快捷方式,左键长按拖动至User's Desktop

右键点击快捷方式,选择属性窗口

可自选快捷方式的显示图标icon

自定义操作

右键点击项目

如果该项目由必选的驱动需要安装,可以将该驱动安装exe文件添加到Application Folder中,选择添加“自定义操作”,选择该驱动安装文件,会在执行文件时,调用驱动的安装。

插件的好处和缺陷

好处:Visual Studio 2017自带插件,使用方便,比下载安装其他打包软件要方便的多。
缺陷:(下述缺陷很可能是因为,我没有弄清楚该插件的深入使用方法)

  1. 驱动安装流程执行结束之后,无法继续主安装流程。
  2. 无法将所需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.dll

InstallShield 的优点和缺点

功能强大是优点,也是缺点,因为功能强大也意味着操作复杂。

Inno Setup

官网
Inno Setup操作简单,最后会生成一个后缀iss的脚本文件。
可以自己写function。对我来说,可能会更喜欢GUI操作。Advanced Installer闪亮登场。

Advanced Installer

下一篇文章着重介绍Advanced Installer,非常好用,推荐指数五星。

Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结的更多相关文章

  1. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  2. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer

    Advanced Installer :Free for 30 days. All features. 下载地址:https://www.advancedinstaller.com/download. ...

  3. python + pyinstaller 实现将python程序打包成exe文件直接运行

    pyinstaller 我们在平常学习使用python的时候经常会自己编写一些小程序来使用,虽然python是跨平台的语言,但是如果我们想要在一个没有python以及很多库环境的电脑上使用我们的小程序 ...

  4. 如何将 Python 程序打包成 .exe 文件?

    有不少订阅本公众号的朋友都不是玩 Python,甚至都不是计算机相关专业的,当我给他们一个 Python 程序时,他们是完全不知道该怎么运行的. 于是我想是不是可以将我的程序打包成可执行文件,直接运行 ...

  5. 将 Python 程序打包成 .exe 文件

    1.简介 做了一个excel的风控模板,里面含有宏,我用python的第三方xlwings部署到linux后发现,linux环境并不支持xlwings. Python 程序都是脚本的方式,一般是在解析 ...

  6. JAVA程序打包成exe文件详细图解

    我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: eclipse ...

  7. Advanced Installer 14.9 – WPF或winform应用程序打包成exe文件

    Advanced Installer14.9 下载地址:https://pan.baidu.com/s/1uj2QcxWcpGdqsjAinNPIAw 提取码:sa3r  选择Visual Studi ...

  8. 使用exe4j把JAVA GUI程序打包成exe文件时遇到的问题

    1.把项目打包成jar文件时,只要勾选src目录就行了,其他的比如资源文件和jar包是不能添加进去的. 2.在D盘建一个文件夹,最好与项目同名,然后把打包好的jar包放进去,其他资源文件(图片之类的) ...

  9. [python学习笔记] python程序打包成exe文件

    安装 pyinstaller pip3 install pyinstaller 命令 pyinstaller -F -w -i ../ui/icon.ico --clean ../Login.py 参 ...

随机推荐

  1. HTML5结构标签

    <!DOCTYPE html> <!-- ↑ 文档声明.HTML5已经简化为上述样式! 注意:文档声明必须有!而且必须在文档页面的第一行!   HTML4.01之前的文档声明: &l ...

  2. 将 Idea 常用快捷键 设置为 Eclipse 的快捷键

  3. 重构SP5中声明自定义扩展类为API调用

    展的自定义类方法想要被前端异步调用必须在方法中 1.首先类必须继承自 AppService 类 2.方法必须指定特性 [ActionDescription("名称","编 ...

  4. 微信接收QQ邮箱e-mail

  5. tcp/ip 三次握手和4次挥手

    TCP连接两个端口,谁也发起请求,谁就是client端A,另外一个接受请求的server端B.第一次握手:A向B发一个链接请求,带一个seq = x,SYN= x. 第二次握手:B收到链接请求之后向A ...

  6. 去掉jenkins的首页警告

    有时候jenkins首页会弹出一些升级警告之类的东西,不喜欢的直接屏蔽掉就行. 类似于这样: 在  全局安全配置里 将一下项目的勾去掉就行 应用,保存.这样就清爽多了

  7. Spark学习之wordcount程序

    实例代码: import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.ap ...

  8. UnicodeDecodeError:utf-8codeccantdecodebyte0xb9inposition0:invalidstartbyte

    相信这个问题大家都会以为是编码的问题,当然原本我也以为是编码问题! 然后试了各种方案!都是以失败告终!     哈哈哈,后来解决了,原来真是闹了个大笑话............         这是因 ...

  9. 判断浏览器是否支持HTML5 video

    话不多说,下面是我从W3C扒的判断浏览器是是否支持H5视频的代码,有需要的小伙伴,拿走不谢 HTML <div id="checkVideoResult"><bu ...

  10. Apache Lucene全局搜索引擎入门教程

    Lucene简介 Lucent:Apache软件基金会Jakarta项目组的一个子项目,Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻.在Java开发环境里Lucene是一个成熟 ...