在我们用VS编好上位机后,就可以在自己电脑运行上位机,但是想其他人电脑运行上位机可能就行不通了,因为其他人电脑不一定有所需要的运行环境。这时我们就需要打包安装,把运行软件所需要的环境都打包在安装包里。

编译软件:Visual Studio 2017,Microsoft Visual Studio 2017 Installer Projects。

   电脑系统:Windows 10.

 

   Visual Studio 2017软件的安装网上有好多教程,但我推荐直接去微软官网,下载地址:https://www.visualstudio.com/ 。我们可以选择下载社区版本,这个版本是免费的。

我们在VS2017安装ok后,就可以下载Microsoft Visual Studio 2017 Installer Projects ok后会自动安装,下载地址:https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects    这样我们的环境就安装好了。

 步骤一:

         打开VS2017--》文件--》新建--》项目。按如下选择确认就ok。Visual Studio Installer组件下载地址:https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects

1.“应用程序文件夹”即"Application Folder"表示要安装的应用程序需要添加的文件;

2.“用户的‘程序’菜单”即"User's Programs Menu"表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe;

3.“用户桌面”即"User's Desktop"表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。

步骤二 :

        右键“应用程序文件夹”,添加--》文件

添加的文件一般是已经编译生成过的应用程序项目的debug目录下的exe文件(即位于../bin/Debug文件夹下的主程序exe文件);

添加后,一般它会自动把exe程序所需的依赖项也加进来,如各种dll文件,在右侧的“Detected Dependencies”里面可以看到它自动导入了哪些依赖项,方便你检查是否有遗漏

接下来,可能还剩一些文件夹或者配置文件XML等没有自动加进来,这个时候就需要自己手动添加

方式也是一样,右键“应用程序文件夹”,添加——文件夹,添加——文件,这里就不再赘述

    第三步:

        右键主程序exe文件,选择“创建快捷方式到……”

然后,中侧框框里会出现一个快捷方式项,将它剪切,粘贴到“用户桌面”文件夹下

至于快捷方式的名称、图标、描述等其他属性,可以在属性面板中设置,如下

第四步:

        既然有安装就有卸载,卸载程序其实是一个Windows操作系统自带的程序(C:Windows\System32\Msiexec.exe),只不过是通过给它传特殊的参数命令,来让它执行卸载

添加和设置卸载程序的操作如下:

首先,将卸载程序放在“应用程序文件夹”目录下,右键“应用程序文件夹”,添加——文件,在系统盘下找到这个路径文件——C:Windows\System32\Msiexec.exe添加进去

由于Msiexec.exe这个名字不够直观,所以一般接下来我们会对它重命名,一般改为“卸载.exe”或“UnInstall.exe”,然后给它创建快捷方式并将快捷方式放到“用户程序菜单”目录下

接下来是很关键的一步,设置卸载参数,告诉卸载程序该卸载哪个

首先,找到安装项目的ProductCode,在安装项目的属性面板中可以看到,如下

复制此ProductCode ,粘贴到“卸载.exe”快捷方式的Arguments属性,前面加/x空格,如下

Arguments=“/x {81575537-5736-457F-9DBE-857C1F67BE70}”记得/x后面一定要有个空格

第五步:

        如果还想对安装程序进行其他设置,比如,友化安装欢迎界面,自定制安装步骤,修改注册表,设置启动条件(比如要求必须先安装指定的.net FrameWork版本才可以启动)        等,可以右键安装项目,在View中可以进行选择设置,如下

有需要可以再去研究,这里就不详细赘述了

第六步:

        一般我们开发的程序都有一个目标框架,也就是所依赖的.net Framework版本环境,如.net Framework 2.0/3.5/4.0/4.5等

要想我们的程序能在电脑上正常运行,首先就得保证电脑上装有指定的.net Framework版本框架,可以在安装包的属性中设置,启动安装前检查操作系统中是否安装了指定版本        的框架或其他依赖,设置方法如下:

右键安装包项目,点开“属性”

然后点击“Prerequisites……”

选择你程序需要的.net Framework版本以及其他依赖项

选择“从组件供应商的网站上下载系统必备组件”,这样一来,即使电脑上没有安装需要的.net Framework也不要紧,只要设置了这项,安装程序会自动从微软的官网上下载对应       的组件并安装,是不是很方便

第七步:

        右键安装项目,选择重新生成

然后打开解决方案文件夹下的Debug或Release文件夹,就可以看到生成的安装文件

生成的setup.exe与setup.msi的区别

setup.exe里边包含了对安装程序的一些条件的检测,比如需要.net的版本是否安装等,当条件具备后,setup.exe接着调用setup.msi,而setup.msi则可以直接运行,如果你确定条件都具备的情况下

参考文章地址:http://blog.csdn.net/baidu_27438681/article/details/72823844

             

 

Visual Studio 2017打包安装项目的更多相关文章

  1. Visual Studio Installer打包安装项目VS2015

    使用VS2015的Visual Studio Installer打包安装项目,虽然整体操作很简单,但还是有几个特殊的点需要记一下,故写下此博客方便以后查阅 第一步,创建安装项目 如下: 里面最左侧的框 ...

  2. Visual Studio 2017的安装与使用

    Visual Studio 2017的安装与使用 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 下载Visual Studio 2017 在官网 ...

  3. win7(64位旗舰版)visual studio 2017无法安装及vs2015闪退问题解决方式

    折腾了两天,几乎试了网上说的所有方法(就差重装系统了,看到有人说重装系统之后还是同样的问题,果断放弃重装),visual studio 2017的安装问题终于解决了,为了帮助同样还在折腾的初级开发者们 ...

  4. Visual Studio 2017 离线安装方式

    Visual Studio, 特别是Visual Studio 2017 通常是一个在线安装程序,如果你在安装过程中失去连接,你可以遇到问题.但是,由于法律原因,微软没有提供完整的可下载的ISO镜像. ...

  5. visual studio 2017 (vs2017安装)

    vs2017要找到控制台模板,要安装模块: 安装完之后: 新建控制台项目: 不使用预编译头: 推荐安装官方扩展: https://marketplace.visualstudio.com/items? ...

  6. visual studio 2017无建模项目?

    教一跨行同事学C#,我想从基础的讲一下,也就是最基本的面象对象分析与设计(OOAD),我直接打开我最新安装的 visual studio 2017.准备建一个“建模项目”.结果发现死活找不到?打开一个 ...

  7. Visual Studio 2017调试开源项目代码

    在我们的开发过程中很多时候我们会从GitHub上面下载一些开源的项目代码,然后在此基础上进行调试,正常情况下我们只需要将项目的源代码编译成Dll或者在.Net Core项目中直接引用相应的Nuget包 ...

  8. Visual Studio 2017 离线安装

    微软最近发布了正式版Visual Studio 2017并公开了其下载方式,不过由于VS2017采用了新的模块化安装方案,所以微软官方并未提供ISO镜像,但是官方提供了如何进行离线下载的方案给需要进行 ...

  9. 转移 Visual Studio 2017 的安装临时文件

    每次更新 Visual Studio 2017 会在 C 盘留下大量的缓存文件,因为目录比较深,怕以后忘了,用目录链接的形式转移到其它磁盘,也好方便清理: mklink /D C:\ProgramDa ...

随机推荐

  1. 负载均衡(二)DNS负载均衡

    一.DNS原理及解析过程详解 相信大家在平时工作中都离不开DNS解析,DNS解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流 ...

  2. day1 instance,round,divmod,imput, 字符串

      >>> a = '123' >>> isinstance(a, str) True >>> b = 1 >>> type(b ...

  3. Java使用wait() notify()方法操作共享资源详解_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 Java多个线程共享资源: 1)wait().notify()和notifyAll()方法是本地方法,并且为final方 ...

  4. weighted choice in python

    对列表按概率采样 Input: a collection C of elements and a probability distribution p over C; Output: an eleme ...

  5. Eclipse 中的 parameter参数,property属性,preference首选项 区别

    parameter参数 1.配置框架 web.xml <init-param> <param-name>contextConfigLocation</param-name ...

  6. JSP文件的上传和下载

    文件上传下载,与传统的方式不同,这里能够上传和下载10G以上的文件.而且支持断点续传. 通常情况下,我们在网站上面下载的时候都是单个文件下载,但是在实际的业务场景中,我们经常会遇到客户需要批量下载的场 ...

  7. BZOJ 1733: [Usaco2005 feb]Secret Milking Machine 神秘的挤奶机 网络流 + 二分答案

    Description Farmer John is constructing a new milking machine and wishes to keep it secret as long a ...

  8. [bzoj]2705: [SDOI2012]Longge的问题[数论][数学][欧拉函数][gcd]

    [bzoj]P2705 OR [luogu]P2303 Longge的问题 Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需 ...

  9. 【bzoj4551】[Tjoi2016&Heoi2016]树

    *题目描述: 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结 ...

  10. 01-pandas基础-Series与DataFrame

    一.Series: 1,介绍:Series是以中类似于一维数组的对象,由一维数组以及与之相关的标签组成 特点:索引在左边,值在右边.在创建时,若我们未给数据指定索引,Series会自动创建一个0到N- ...