利用VS2017制作软件安装包与卸载程序
本博客讲述如何利用VS2017制作安装包以及相应的卸载程序,并解决过程中可能遇到的问题
一、制作安装程序
1.打开VS2017,新建项目,选择如下图所示程序:

新建成功后,会出现如下图所示目录:

2.添加安装文件的主入口,在Application Folder --> Add --> 项目输出 如下图所示:

在弹出的对话框中,即可选择当前解决方案下的所有程序文件,选择对应的入口程序即可,如下图所示:

3.添加其他程序文件与资源文件
由于选择项目输出后,自动添加进来的文件是该入口程序在项目中引用的文件,其他第三方DLL或者资源文件等没有添加,需要手动添加,直接在Application Folder --> Add --> 文件或者将需要添加的文件复制到目录中即可
4.添加桌面快捷方式
在Application Folder文件夹中,选择刚才添加进来的主输出,右键,出现如下图所示对话框:

选择第一条记录,并将复制出来的记录复制到User's DeskTop文件夹下

5.打开 User's DeskTop文件夹,在刚才复制的文件上右键,选择属性窗口,设置快捷方式的图标,名称等信息,如下图所示:

6.设置菜单栏
用户的菜单栏在“User's Programs Menu”设置,由于一个完整的安装程序会有安装与卸载两个功能,为了保证程序在同一位置显示,因此建议在User's Programs Menu中新建一个文件夹,将安装与卸载程序放在一起,保持美观

按照第四步的操作,创建一个主输出,并复制到User's Programs Menu文件夹中刚才创建的文件夹内
7.按照第6步操作的方式设置文件属性
8.设置系统所需.netFramework的配置
由于Winform程序的运行需要有.netFramework版本的支持,因此对于不符合.netFramework版本的客户端要能版主用户自动安装.netFramework相关版本
在安装程序主目录上右键,选择属性,如下图所示:

点击弹出框中如下图所示按钮:

在弹出的对话框中即可配置需要配套的.netFramework版本,如下图:

9.制作卸载程序
在"C:\WINDOWS\system32"路径下,找到msiexec.exe 添加到应用程序文件夹中,创建快捷方式,并命名"卸载管理系统"或"Uninstall",将起复制到第六步新建的文件夹下
在主程序中找到安装程序的ProductCode,选择安装程序文件,即可直接在属性页看到,如下图所示:

记录下这个ProductCode
在刚才创建的msiexec.exe快捷方式(注意是快捷方式)上进入属性页面,在Arguments选项中 输入/x 及ProductCode; 例如:/x {A29696DC-67CA-3ADE-6965-ACC7D698CB7}
至此,一个程序的安装程序与卸载程序制作过程完毕。
可能遇到的问题
1.重复安装程序,会出现如下图所示提示:

解决方法:之前版本和当前版本的UpgradeCode必须一样,但是ProductCode必须不同,即程序的id一致,版本不一致,才可以。
修改程序的ProductCode,并将安装程序的Version改成更大的版本号,同时更改RemovePreviousVersions为True,问题解决。(注意:在修改ProductCode之后,需要将卸载程序的ProductCode同时修改,否则程序无法卸载)
利用VS2017制作软件安装包与卸载程序的更多相关文章
- 使用Qt Installer Framework制作软件安装包
概述 Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具.包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制作 ...
- 使用Inno Setup 制作软件安装包详细教程(与开发语言无关)
前言:关于如何制作一个软件安装包的教程,与编程语言无关.以下,请看详情~ 1.下载Inno Setup,下载地址:https://jrsoftware.org/isinfo.php 2.下载最新版本即 ...
- Windows下制作软件安装包
一.下载 首先,下载SetupFactory9.0.3.0Trial(下载链接:https://www.haolizi.net/example/view_65380.html) 下载好会有一个压缩包 ...
- vs2017 制作winfrom 安装包!
https://www.cnblogs.com/GuZhenYin/p/8176981.html 转载 前言 项目中有用到winfrom做配套的打印程序,直接给客户一个debug文件夹,当然不是很好. ...
- Inno Step软件安装包制作教程
Inno setup制作软件安装包教程 1,Inno Setup介绍 Inno Setup 是一个免费的安装制作软件,小巧.简便.精美是其最大特点,支持pascal脚本,能快速制作出标准Windows ...
- 快速创建软件安装包-ClickOnce
大家好,我是沙漠尽头的狼. .NET是免费,跨平台,开源,用于构建所有应用的开发人员平台. 今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne. 1. 什么是Click ...
- vs2017 rc 离线安装包制作
vs2017 rc 离线安装包制作 1.下载在线安装包:https://aka.ms/vs/15/release/vs_Enterprise.exe 2.制作离线安装包: vs_Enterprise. ...
- installshield制作的安装包卸载时提示重启动的原因以及解决办法
原文:installshield制作的安装包卸载时提示重启动的原因以及解决办法 有时候卸载installshield制作的安装包程序,卸载完会提示是否重启电脑以完成所有卸载,产生这个提示的常见原因有如 ...
- 7z制作自解压安装包
像7z和winRAR这样的压缩工具都支持制作自解压的文件.所谓自解压的文件就是不需要目标机器上安装解压工具,通过运行压缩包自己即可解压出压缩包中的文件.下面我们就介绍一下如何利用7z的自解压功能制作应 ...
随机推荐
- Spring Boot 第六弹,拦截器如何配置,看这儿~
持续原创输出,点击上方蓝字关注我吧 目录 前言 Spring Boot 版本 什么是拦截器? 如何自定义一个拦截器? 如何使其在Spring Boot中生效? 举个栗子 思路 根据什么判断这个接口已经 ...
- #pragma comment 的使用方法
转发:https://blog.csdn.net/liruda/article/details/2230617 #pragma comment ( lib,"wpcap.lib" ...
- shell脚本中,关于if,以及条件判断
#!/bin/sh SYSTEM=`uname -s` #获取操作系统类型 if [ $SYSTEM = "Linux" ] ; then #如果是linux的话打印linux字符 ...
- windev的内部窗口传参方式及其与类的相似性
最近的应用,需要向一个内部窗口(internal window)传参,因为官方文档的说明较为宽泛,虽然结果只有两小段代码,但也费了很大的劲.把所有关于procedure的文档看一遍,又是重新学习了一遍 ...
- tuple的增删改查
dict = {"k1": "v1", "k2": "v2", "k3": "v3&quo ...
- 达梦数据库_DM8配置实时主备
1.环境说明 准备三台机器DM_HD1.DM_HD11.DM_SH,DM_HD1和DM_HD11用来部署主备库,DM_SH用来部署确认监视器.其中DM_HD1和DM_HD11配置两块网卡,一块接入内部 ...
- 创建自定义视图在Android矩阵效果画布教程
介绍 下面是一个快速教程,教你如何在Android中创建自定义视图.自定义视图创建一个矩阵雨效果. 本教程发布在http://www.androidlearner.com/. 背景 下面是关于如何工作 ...
- Signature Scanning(中文暂时译为"特征码扫描")是在C++(起码我是用C++^^)开发中很好的一种方式
1.介绍 本文主要简单介绍在没有代码的情况下,如何从一个动态链接库中获取某个函数的址.主要实现方式为Signature Scanning(特征码扫描) 2.什么是Signature Scanning( ...
- day02 Pyhton学习
1.昨日内容回顾 1.python是一门解释型,弱类型的高级编程语言 优点: 1.优雅简单明确 2.短小快,代码短,代码量小,开发效率高 缺点: 1.运行效率低(相对) 2.python解释器 Cpy ...
- day27 Pyhton 面向对象02 组合
# 组合 # 什么是组合 : 一个类对象的属性是另外一个类的对象 class Person: def __init__(self,name,sex,hp,mp,ad): self.name = nam ...