本博客讲述如何利用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. Linux设置主机名称与host映射

    uname -n :查看host对应的域名 2.在 /etc/hostname 删除原来的重新配置需要的域名   3.在 /etc/hosts 中添加域名和映射ip   4.重启系统   5.其他主机 ...

  2. 《C++primerplus》第7章练习题

    1.用户不断输入两个数,计算调和平均数,直到其中一个数为0. #include<iostream> using namespace std; double harm_mean(double ...

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

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

  4. 【题解】[USACO08MAR]Land Acquisition G

    Link 题目大意:给定\(n\)个二元组,每次可以选择一组,花费是组内最大的长乘以最大的宽.问消掉所有二元组的最小代价. \(\text{Solution:}\) \(dp\)写的不够啊-- 先挖掘 ...

  5. nuget使用经验:复杂依赖关系下的包版本问题

    背景 之前同事问到过1个关于nuget包被多层引用后,最终生效的版本的问题.当时通过在项目中重新安装了一次nuget包解决了. 现在来重新复盘一下当时的场景,顺便把这种场景下nuget处理逻辑分享给大 ...

  6. Elasticsearch(4):映射

      ES中的映射(mapping)是用于定义索引中文档以及文档中的字段如何被存储和索引(动词)的一种机制,例如,通过映射我们可以进行如下的这些定义: 索引文档中,哪些字符型字段应该被当做全文本类型: ...

  7. Makefile常用函数(转)

    一.字符串处理函数 1.$(subst FROM,TO,TEXT) 函数名称:字符串替换函数-subst. 函数功能:把字串"TEXT"中的"FROM"字符替换 ...

  8. MeteoInfoLab脚本示例:AIRS Grid HDF数据

    AIRS Grid HDF数据是HDF4 EOS格式,数据地理坐标信息可以被MeteoInfo自动识别,脚本程序更为简单.需要注意的是读取数据时Y轴是反向的(卫星数据通常如此).脚本程序: #Add ...

  9. linux(centos8):sed命令的应用例子

    一,sed命令的用途 sed是Linux下一款功能强大的非交互流式文本编辑器, 可以对文本文件进行增.删.改.查等操作, 支持按行.按字段.按正则匹配文本内容. 说明:刘宏缔的架构森林是一个专注架构的 ...

  10. selenium基础--环境搭建

    下载地址 Chrome点击下载chrome的webdriver: http://chromedriver.storage.googleapis.com/index.html不同的Chrome的版本对应 ...