当前位置: 首页 > news >正文

Visual Studio 2017打包安装项目

xinp.jpg

      在我们用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

        界面.PNG        

        2.PNG

    

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

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

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

    步骤二 :

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

1.png

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

2.png

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

3.png

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

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

    第三步:

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

4.png

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

5.png

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

6.png

    第四步:

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

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

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

7.png

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

 

8.png

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

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

        

9.png

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

10.png

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

    第五步:

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

11.png

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

    第六步:

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

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

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

12.png

        然后点击“Prerequisites……”

13.png

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

14.png

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

     第七步:

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

15.png

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

16.png

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

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

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

                                                                                                                                                                             

 

转载于:https://www.cnblogs.com/linux-37ge/p/10220283.html

相关文章:

  • 宝塔面板 + Rancher + 阿里云镜像仓库 + Docker + Kubernetes,添加集群、部署 web 应用...
  • RDD基础知识
  • 使用
  • JuJu团队1月7号工作汇报
  • IP地址专题七:子网掩码及主机段的算法
  • mysql忘记密码(跳过权限修改)
  • java中date日期格式的各种转换
  • HMM学习
  • Exchange Server 2007安装与配置(待續文章)
  • Vue移动端焦点状态跳转页面,焦点和键盘不消失的问题
  • request获取数据3种方法
  • 对我影响最大的三位老师
  • Oracle分页
  • Java 内省机制
  • 配置企业的三层交换和DHCP的搭建
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • JAVA_NIO系列——Channel和Buffer详解
  • java概述
  • JS+CSS实现数字滚动
  • JS笔记四:作用域、变量(函数)提升
  • LeetCode29.两数相除 JavaScript
  • mockjs让前端开发独立于后端
  • python 学习笔记 - Queue Pipes,进程间通讯
  • React 快速上手 - 07 前端路由 react-router
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • session共享问题解决方案
  • SQLServer之创建显式事务
  • STAR法则
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 收藏好这篇,别再只说“数据劫持”了
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • !!Dom4j 学习笔记
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (poj1.2.1)1970(筛选法模拟)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (原)Matlab的svmtrain和svmclassify
  • *2 echo、printf、mkdir命令的应用
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net 简单实现MD5
  • .Net 应用中使用dot trace进行性能诊断
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .NET值类型变量“活”在哪?
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节