本博客讲述如何利用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制作软件安装包与卸载程序的更多相关文章

  1. 使用Qt Installer Framework制作软件安装包

    概述 Qt Installer Framework(缩写QIF)是Qt官方用于生成软件安装包的工具.包括Qt Creator和Qt Installer Framework自身的安装包都是由这个工具制作 ...

  2. 使用Inno Setup 制作软件安装包详细教程(与开发语言无关)

    前言:关于如何制作一个软件安装包的教程,与编程语言无关.以下,请看详情~ 1.下载Inno Setup,下载地址:https://jrsoftware.org/isinfo.php 2.下载最新版本即 ...

  3. Windows下制作软件安装包

    一.下载 首先,下载SetupFactory9.0.3.0Trial(下载链接:https://www.haolizi.net/example/view_65380.html) 下载好会有一个压缩包 ...

  4. vs2017 制作winfrom 安装包!

    https://www.cnblogs.com/GuZhenYin/p/8176981.html 转载 前言 项目中有用到winfrom做配套的打印程序,直接给客户一个debug文件夹,当然不是很好. ...

  5. Inno Step软件安装包制作教程

    Inno setup制作软件安装包教程 1,Inno Setup介绍 Inno Setup 是一个免费的安装制作软件,小巧.简便.精美是其最大特点,支持pascal脚本,能快速制作出标准Windows ...

  6. 快速创建软件安装包-ClickOnce

    大家好,我是沙漠尽头的狼. .NET是免费,跨平台,开源,用于构建所有应用的开发人员平台. 今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne. 1. 什么是Click ...

  7. vs2017 rc 离线安装包制作

    vs2017 rc 离线安装包制作 1.下载在线安装包:https://aka.ms/vs/15/release/vs_Enterprise.exe 2.制作离线安装包: vs_Enterprise. ...

  8. installshield制作的安装包卸载时提示重启动的原因以及解决办法

    原文:installshield制作的安装包卸载时提示重启动的原因以及解决办法 有时候卸载installshield制作的安装包程序,卸载完会提示是否重启电脑以完成所有卸载,产生这个提示的常见原因有如 ...

  9. 7z制作自解压安装包

    像7z和winRAR这样的压缩工具都支持制作自解压的文件.所谓自解压的文件就是不需要目标机器上安装解压工具,通过运行压缩包自己即可解压出压缩包中的文件.下面我们就介绍一下如何利用7z的自解压功能制作应 ...

随机推荐

  1. 使用Redis做消息队列

    基于内存的单线程数据库,使Redis的线程安全性极高.而Redis的双向链表数据类型(List)天生就可作为消息队列存储消息. 在这里就不说消息队列的等等一些优点.但是补充一下Redis的List类型 ...

  2. Python练习题 021:递归方法求阶乘

    [Python练习题 021] 利用递归方法求5!. ---------------------------------------------- 首先得弄清楚:5! 指的是"5的阶乘&qu ...

  3. Excel双击“单元格”后,自动跳转到相关“工作表

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Target.Column = ...

  4. HTML & CSS & JavaScript 从一个表格到一个灰阶颜色表 01

    工具1:HBuilder X 1.9.9.20190522 工具2:火狐浏览器 67.0.4 (64 位) 在开始之前,你需要了解一些基本的知识,不要求你能掌握,但是了解一下还是有益的: HTML 简 ...

  5. matlab find函数使用语法

    find 找到非零元素的索引和值 语法: 1. ind = find(X) 2. ind = find(X, k) 3. ind = find(X, k, 'first') 4. ind = find ...

  6. Nginx(五)、http反向代理的实现

    上一篇nginx的文章中,我们理解了整个http正向代理的运行流程原理,主要就是事件机制接入,header解析,body解析,然后遍历各种checker,以及详细讲解了其正向代理的具体实现过程.这已经 ...

  7. ansible-任务控制tags

    1. ansible-任务控制tags介绍        如果你有一个大型的剧本,那么只能运行它的特定部分而不是在剧本中运行所有内容可能会很有用.因此,Ansible支持"tags:&quo ...

  8. golang 进行grpc调用

    参考https://blog.csdn.net/qq_32744005/article/details/105606383 go get google.golang.org/grpc go get - ...

  9. CSS元素的显示与隐藏

    CSS元素的显示与隐藏 我们访问某些网站的时候,经常可以看到一些广告弹出来,点击关闭就不见了,但是重新刷新页面后,广告又会重新弹出来.这就是元素的显示和隐藏的一个应用. 1. display属性 di ...

  10. Jmeter请求之接口串联自动化测试(未完)

    方案一:添加Cookie管理器,把用户的登录状态存在cookie管理器中,类似于浏览器 存储测试结果: 监听器->保存响应到文件,对结果进行存储 文件名前缀:保存到哪个地方前缀是什么D:\tes ...