当前位置: 首页 > 编程日记 > 正文

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

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

Visual Studio版本:Visual Studio 2017

Visual Studio 2017 打包插件

新建项目->其他项目类型->Visual Studio Installer->Setup Project
960070-20180504142553709-1974607157.png

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

选择主输出

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

创建快捷图标

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

右键点击快捷方式,选择属性窗口
960070-20180504142704611-1700659400.png

可自选快捷方式的显示图标icon
960070-20180504142720116-817084485.png

自定义操作

右键点击项目
960070-20180504142736379-44398701.png

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

插件的好处和缺陷

好处: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,非常好用,推荐指数五星。

转载于:https://www.cnblogs.com/AlienXu/p/8964005.html

相关文章:

NET也有闭包

NET也有闭包在.NET中,函数并不是第一级成员,所以并不能像JavaScript那样通过在函数中内嵌子函数的方式实现闭包,通常而言,形成闭包有一些值得总结的非必要条件: 嵌套定义的函数。 匿名函数。 将函数作为参数或…

【opencv】ubuntu14.04上编译opencv2.4

参考博客 https://blog.csdn.net/c406495762/article/details/62896035 1、安装依赖库 sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install libv4l-0 libv…

1024块TPU在燃烧!BERT训练从3天缩短到76分钟 | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑作者 | 琥珀出品 | AI科技大本营(ID:rgznai100)“Jeff Dean称赞,TensorFlow官方推特支持,BERT目前工业界最耗时的应用,计…

牵引力教育设计总监解密9大2018潮流UI设计趋向

作为一名紧跟时代潮流的UI设计师,设计的风格一定要紧跟上最新的设计趋势,因为更为有效且颇具趣味的响应式图标必将得到关注。同时,鲜艳丰富的色彩,精彩纷呈的插图设计都会博得用户眼球。这样你的设计更容易获得更多人的认可与热爱…

Android媒体相关开发应用程序接口

翻译自:http://developer.android.com/guide/topics/media/index.html MediaAndroid框架支持各种普通media类型的编解码,因此你可以很容易地把音频,视频和图片整合到你的应用程序中。通过使用MediaPlayer的接口,你可以播放各种音视…

Facebook开源图嵌入“神器”:无需GPU,高效处理数十亿级实体图形 | 极客头条...

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑编译 | Major、一一出品 | AI科技大本营(ID: rgznai100)有效处理大规模图对于促进人工智能的研究和应用至关重要,但特别是在工业应用中的图&…

【opencv】ubuntu14.04上编译opencv-4.0.1 + opencv_contrib-4.0.1

1、要求 编译器版本:c11 cmake版本:3.5.1 2、安装camke 2.1 官网下载:https://cmake.org/download/ 选择:Linux x86_64 cmake-3.14.1-Linux-x86_64.sh 2.2 安装: 将cmake-3.14.1-Linux-x86_64.sh拷贝考ubuntu中&…

软件开发文档模板 (学习)

1 可行性研究报告   可行性研究报告的编写目的是:说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能先择的各种方案;说明论证所选定的方案。 可行性研究报告的编写内容要求如下: …

Unix数据中心主宠儿

曾几何时UNIX一直是除个人电脑之外的领域中应用最为广泛的操作系统,并且为现代操作系统的成型奠定了基础,可以说UNIX的历史就像应用程序本身一样耐人寻味。UNIX的过去回首1983年,肯.托马森和D.里奇由于对操作系统发展史以及UNIX操作系统应用所…

【AI】基本概念

1、什么是人工智能 人工智能(AI)是通过研究、开发,来找到用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的综合性的科学技术。其表现为,让计算机系统通过机器学习等方式,来获得可以履行原本只有依…

在浏览器中进行深度学习:TensorFlow.js (四)用基本模型对MNIST数据进行识别

2019独角兽企业重金招聘Python工程师标准>>> 在了解了TensorflowJS的一些基本模型的后,大家会问,这究竟有什么用呢?我们就用深度学习中被广泛使用的MINST数据集来进行一下手写识别的操作。 MINST数据集 MINST是一组0到9的手写数字…

不止临床应用,AI还要帮不懂编程的医生搞科研

近日,推想科技发布 AI 学者科研平台 InferScholar Center,该平台为更多的医生提供零门槛的 AI 科研能力,让医生可以快速将深度学习、影像组学以及文本数据处理相关的前沿技术应用到自己的临床科研实践中,他们将为平台上的医疗科研…

rhel6Inode详解

在Linux文件系统中,很多人对Inode都不太明白,今天我就和大家一起来分享一下我对Inode的认识,如果有理解错误的地方,请大家多多批评指点。在上一篇一天一点学习Linux之认识文件系统中,在最后给出了一张EXT3文件系统结构…

争论不休的TF 2.0与PyTorch,到底现在战局如何了? | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑作者 | Jeff Hale译者 | Jackey编辑 | Jane出品 | AI科技大本营(id:rgznai100)【导语】 TensorFlow 2.0 和 PyTorch 1.0 陆续发布后,…

struts2实验2:struts2.xml action中* ,{}以及${}

p.s 关键在于struts.xml中的匹配&#xff0c;使用* ,{}以及${}可以让代码更加简洁清晰 代码核心思路 在struts.xml中通过路由(url)去指定控制逻辑的Action中的方法,例如 <package name"admin" namespace"/admin" extends"struts-global">&…

【Ubuntu】dpkg-deb -c :查看deb文件中的内容

1、dpkg-deb -c :查看deb文件中的内容 $ dpkg-deb -c packageeg&#xff1a; $ dpkg-deb -c sogoupinyin_2.2.0.0108_amd64.deb drwxr-xr-x root/root 0 2018-04-18 16:50 ./ drwxr-xr-x root/root 0 2018-04-18 16:50 ./etc/ drwxr-xr-x root/root …

捕获Camera并保存图片到本地(照相功能) -samhy

Flex博文 捕获Camera并保存图片到本地(照相功能) -samhy作者:admin 日期:2010-07-12字体大小: 小 中 大捕获Camera并保存图片到本地(照相功能)这几天对Camera类进行了一下规整&#xff0c;并利用JPGEncoder类实现了照相的功能,代码如下&#xff1a; XML/HTML代码import flash.m…

【C++】模板函数的声明和定义必须在同一个文件中

1、问题描述 习惯性的将函数的定义和实现&#xff0c;分别写在头文件和源文件&#xff08;.cpp&#xff09;中。今天也按照这个习惯实现了一个模板函数。然后编译时报错 ... error: undefined reference to ...2、原因分析 c中模板的声明和定义不能分开。C中每一个对象所占用…

基于AWS-ELK部署系统日志告警系统

前言 运维故障排障速度往往与监控系统体系颗粒度成正比&#xff0c;监控到位才能快速排障 在部署这套系统之前&#xff0c;平台所有系统日志都由GraylogZabbix&#xff0c;针对日志出现的错误关键字进行告警&#xff0c;这种做法在运维工作开展过程中暴露出多个不足点&#xff…

《周志华机器学习详细公式推导版》发布,Datawhale开源项目pumpkin-book

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑来源 | Datawhale&#xff08;ID&#xff1a;Datawhale&#xff09; 如果让你推荐两本国内机器学习的入门经典作&#xff0c;你会推荐哪些呢&#xff1f;相信大家同我一样&#xff…

JVM内存泄漏检测与处理

JVM内存泄漏检测与处理&#xff08;JVM Memory Leak detection and handling&#xff09; JVM垃圾回收机制的原则和方法 JVM垃圾回收中一个基本原则是对象没有被引用或则引用其它对象&#xff0c;换句话说当一个对象在heap 中是隔离(isolation)状态的时候&#xff0c;垃圾回收器…

【Dlib】dlib和opencv的互转

一、dlib::matrix转换成cv::Mat 1、注意事项&#xff1a; 1&#xff09;将dlib::matrix转成BGR格式后&#xff0c;再转换成cv::Mat&#xff0c;因为cv::Mat中是按照BGR顺序存储 2&#xff09;注意最后添加的cv::Mat::clone()函数&#xff0c;因为dlib::toMat(tmp)返回的mat数…

原创 人物志|山东省临沭县 - 一位身残志坚的奋斗青年 - 吴忠军

原创 人物志|山东省临沭县 - 一位身残志坚的奋斗青年 - 吴忠军 02972018-04-29 16:15:27 人物志|山东省临沭县 - 一位身残志坚的奋斗青年 - 吴忠军 齐鲁晚报 2018年04月29日 2018年4月29日&#xff0c;山东省临沂市临沭县&#xff0c;一位年轻的小伙子。吴忠军&#xff0c;山东…

百度SLG拿下前锤子科技CTO钱晨,还要合并小鱼在家? | 极客头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑整理 | 一一出品 | AI科技大本营&#xff08;id&#xff1a;rgznai100&#xff09;2016 年 7 月&#xff0c;锤子科技前 CTO 钱晨从该公司退休的消息被证实&#xff0c;关于其离职的…

【Dlib】dlib实现深度网络学习之 input层

1、 dlib::input 模板类&#xff0c;深度神经网络的简单输入层&#xff0c;它将某种图像作为输入并将其加载到网络中。 这是一个基本的输入层&#xff0c;它只是简单地将图像复制到一个张量中。 注意&#xff1a;dlib::input只支持输入dlib::matrix和dlib::array2d类型&#x…

首发 | 13篇京东CVPR 2019论文!你值得一读~ 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑编者按&#xff1a;计算机视觉和模式识别大会 CVPR&#xff08;Conference on Computer Vision and Pattern Recognition&#xff09;作为人工智能领域计算机视觉方向的重要学术会议…

Windows 活动目录(AD)服务器系统升级到2012之活动目录角色迁移(三)

4.5迁移服务器角色到AD20121. 打开powershell&#xff0c;使用命令迁移服务器角色到AD2008输入命令Ntdsutil输入命令Roles输入命令Connections输入命令Connect to server AD2012&#xff0c;连接AD2012控制器输入命令QUIT输入Transfer infrastructure master命令&#xff0c;转…

《星际争霸2》引擎技术解析

就在SIGGRAPH大会刚结束之后&#xff0c;AMD和暴雪在AMD官方网站上放出了《星际争霸II》的官方技术文档&#xff0c;通过游戏引擎技术的展示让星际迷们感受到越来越多的惊喜。画面优化给CPU带来考验着色方面&#xff0c;在使用原型的基础上利用3D Studio MAX让程序员对整体效果…

回顾与展望:大热的AutoML究竟是什么? | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑来源 | 第四范式编者按&#xff1a;AutoML&#xff08;Automatic Machine Learning&#xff0c;自动机器学习&#xff09;旨在研究在没有专业知识的情况下使用的低门槛甚至零门槛的…

【Python】深度学习中将数据按比例随机分成随机 训练集 和 测试集的python脚本

深度学习中经常将数据分成 训练集 和 测试集&#xff0c;参考博客&#xff0c;修改python脚本 randPickAITrainTestData.py 。 功能&#xff1a;从 输入目录 中随机检出一定比例的文件或目录&#xff0c;移动到保存 测试集目录 中&#xff0c;原输入目录作为训练目录。 import…