VS2019打包WPF安装程序最新教程,使用Visual Studio 2019开发的WPF程序如果想要打包为安装程序,除了在VS2019找到WPF项目类库直接右键发布之外,更常用的还是将其打包为exe或者msi的安装程序;打包成安装程序的话,客户得到安装程序直接安装即可使用,即使在离线环境情况下,安装好就可以使用了。

一些传统行业发布程序时,比较常用这种方法,如医疗,教育等。

演示程序打包一览

在本教程中,我完整的打包了一个简单的WPF程序,最终安装好了以后,在桌面有一个我的程序的快捷方式图标,点击这个图标即可打开应用程序。

WPF安装程序桌面图标

 

程序运行后的效果如下所示:

VS2019打包WPF安装程序运行效果 

VS2019打包WPF安装程序步骤

使用VS2019打包WPF安装程序有很多种方法,本篇教程基于VS扩展插件Microsoft Visual Studio Installer Projects工具来打包,实际上此工具,在VS2010时自带有,只是后面版本的Visual Studio取消了此插件,现在需要单独安装。

安装打包Installer插件

安装Microsoft Visual Studio Installer Projects插件有两种方式。一是下载插件单独安装,二是在VS里面在线安装。

Microsoft Visual Studio Installer Projects下载地址:

官方下载地址:点击下载

 

下载下来后,你会在你的保存目录看到此文件的图标是这样的,直接双击安装就可以了,如果打开了Visual Studio,先将VS关闭后再安装即可。

安装插件

如果你不能从官网下载到,可以从本站直接下载即可。离线下载安装的方式适用于断网环境开发。

VS在线安装Microsoft Visual Studio Installer Projects

Microsoft Visual Studio Installer Projects插件也可以在线直接安装,步骤为:点击菜单栏【扩展(X)】,然后在弹出来的一个窗体里面,在右侧搜索框里面搜索“Microsoft Visual Studio Installer Projects”,一般第1个就是它了,然后点击Download(下载),然后安装就可以了。

VS在线安装Microsoft Visual Studio Installer Projects

点击Download后如下:

下载插件

下载完毕后,你需要把VS关闭掉,它会自动的安装。

自动安装插件

安装好了后,启动VS即可。

创建安装项目

重新打开Visual Studio,打开一个你现有的包含WPF项目的解决方案即可,然后创建安装项目。在解决方案上右键 –> 【新建项目】–> 【Setup Project】,添加Setup Project项目时,VS2019可以搜索项目模板,如下图所示。

创建安装项目

创建好了后,主界面变成如下图所示:

安装项目主界面

左边窗口三个文件夹图片说明如下:

Application Folder:应用程序包含的文件设置,指最终在客户电脑上的安装根目录。如下图所示:

应用程序目录子目录

User’s Desktop:用户桌面快捷方式设置,用户桌面,一般放个快捷图标。

User’s Programs Menu:用户启动菜单的快捷方式设置,一般也是放快捷图标。

Application Folder是安装程序的根目录,你编写的程序生成的dll,安装后就存放在这个目录。

添加项目输出

安装项目建好了后,需要要往里面添加项目输出,操作方式为:右键Application Folder —>Add—>项目输出。

该操作也可以直接在安装程序项目类库上面通过右键操作来添加项目输出,如下图所示:

右键设置属性

设置项目属性

项目属性的设置,是用于最终一个生成安装程序的描述信息,这个描述信息,这个描述信息主要内容有程序的作者,标题,公司信息,技术支持等等。最直观的方式可以通过2种方式查看。

第一种查看方式:安装前将鼠标放到安装程序文件上,会有提示信息,如下图所示:

属性提示

第二种查看方式:安装后在控制面板处,找到安装程序,即可查看,如下图所示:

控制面板看到的安装后程序描述

 

项目属性的设置方式为:(1)左键选中项目,(2)点击解决方案栏属性,注意,不是右键选择属性,而是如下图一样选择属性。

设置安装程序属性

当你点了属性后,会出现如下的窗口。

设置属性主窗口

在当前的演示程序中,我是按照上图做的设置,设置都很简单,不需要做额外的解释,如果有不明白的,可以加群与我联系。

添加快捷方式图标

程序安装好,我们当然希望用户能够快速的打开我们的应用程序,你就需要为你的安装程序制作快捷方式,方法很简单。

方法:(1)中间窗口右键,创建新的快捷方式

创建新的快捷方式

(2)弹窗里面选择Application Folder,双击进入另外一个界面

创建新的快捷方式第2步

双击后,进入下图这个界面,选择主输出即可。

创建新的快捷方式第3步

完了后点击OK按钮,就进入下图这个界面。然后将快捷方式名称改为你应用程序的名称。

改快捷方式图标名称

改名后的效果:

改名后的效果

最后一步,也是最重要一步,在上图中选中改名后的图标,将其拖到左侧窗口User’s Desktop目录即可。

拖动快捷方式图标到对应位置

开始菜单图标(User’s Programs Menu)设置方式同上面的步骤是一样的,这里就不再重复了。

依赖文件

打包正式项目的时候,界面程序可能依赖于很多其它类库,或者第3方的dll文件,我们需要把它们一起打包,并且这些第3方程序或者dll需要同主程序在同一个安装路径下,那么在打包时,也就需要额外的把这些文件也打包进来。

所有的操作都可以在中间窗口通过右键添加文件,程序集来实现,如下图所示

添加依赖文件

添加注册表项目

制作的安装包如果要添加注册表项目,可以通过选中安装程序项目,然后右键,在弹出的菜单里面找到【View】,即可以添加注册表项目,按照提示一步一步操作即可。

另外有些打包的程序,需要在安装前或者安装后做一些额外的操作,都可以通过自定义操作来实现,如主程序安装好了以后,还得安装一个windows服务程序,再安装另外一个自动升级程序,都可以通过这里来实现。

添加注册表项目

以上的基本操作熟悉后,相信对于简单的桌面程序打包应该没有什么问题了。

另外需要注意的是,对外打包,需要更改为Release模式

打包依赖框架

最后再说一下关于 .net 环境的问题,如果你需要在打包时,将相应版本的.Net Framework一起打包到安装程序里面也是可以的,只是要注意,有可能你的打包机器上并没有安装相应的.net framework文件,则需要到官方或者网上下载对应版本的文件,例如这个演示程序,我设定的依赖框架是 4.5.2版本的,那么需要将NDP452-KB2901907-x86-x64-AllOS-CHS.exe(.net framework 4.5.2安装文件)放到指定目录才能正常的生成打包文件。

需要将.net 的离线安装文件放到以下目录,其它版本则注意下路径即可,一般C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages

目录下面有不同版本的以DotNetFX开头的目录,如下图所示:

依赖框架保存目录
依赖框架保存目录

将相应的版本的.net framework框架文件放到对应的目录即可,我这个演示程序是放到下面这个目录的。

C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX452\zh-Hans

具体打包步骤为:右键安装项目,选择属性,弹出窗口点击Prerequisites…按钮。再在弹出的窗口选择你应用程序需要的框架版本即可。可以选择多个。

Prerequisites

选择需要打包的框架版本即可。

框架版本

待安装程序打包成功后,即可在生成目录看到该框架的安装包,如下图所示:

生成目录框架文件

好了,以上就是使用VS2019打包WPF安装程序的完整步骤。

演示程序可以点击这里下载。

打包后安装一览

成生打包文件成功后,就可以双击msi或者exe文件进行安装了,安装效果图如下:

安装打包程序

选择安装目录

安装打包程序

在演示的这个打包程序里面,比较简单,实际上你可以添加用户协议文件,输入用户信息后才能安装,这些都可以在打包时设置。

演示程序源码可以在原文链接处下载

本文首发于:https://jhrs.com/2019/33231.html

VS2019打包WPF安装程序最新教程的更多相关文章

  1. .net core 和 WPF 开发升讯威在线客服系统:把 .Net Framework 打包进安装程序

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程. 系列文章目录: https://blog.shengxunwei.com/Home/Post/44a3 ...

  2. win7下nsis打包exe安装程序教程

    下载软件包: NSIS中文版 :https://pan.baidu.com/s/1mitSQU0 装好之后会出现两个软件:Nullsoft Install System 和 VNISEdit 编译环境 ...

  3. [WPF]VS2019打包WPF程序

    原文:[WPF]VS2019打包WPF程序 版权声明:本文为本人原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37316917/article/details/8 ...

  4. sencha touch打包成安装程序

    为了更好地向大家演示如何打包一个sencha touch的项目,我们用sencha cmd创建一个演示项目,如果你的sencha cmd环境还没有配置,请参照 sencha touch 入门系列 (二 ...

  5. sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序

    由于最近一直忙着android原生的开发,很久没有更新博客了,官方的sencha cmd工具功能非常强大,创建项目,压缩项目,打包安装程序都能轻松实现,这讲我们就给大家介绍下如何使用sencha cm ...

  6. C#打包制作安装程序过程全记录

    该文是根据网上的文章并结合自己实际打包的过程而整理的. 开发平台:VisualStudio2005中文版. 步骤如下: 1. 创建一个安装向导项目或安装部署项目 新建项目-〉其他项目类型-〉安装与部署 ...

  7. C# winform 打包成安装程序(exe)

    C# 打包成安装程序 1.扩展-> 安装扩展 联网搜索 install     2.新建安装程序项目      3.添加程序   4.添加打包需要的文件 5. 添加x86与x64文件夹,并添加s ...

  8. 图解 VS2015 如何打包winform 安装程序

    http://learn.flexerasoftware.com/content/IS-EVAL-InstallShield-Limited-Edition-Visual-Studio?lang=10 ...

  9. VS2015 打包winform 安装程序

    最近开发了一个小软件.由于需要打包.网上找了一些资料.然后整合了起来.希望对大家有所帮助.不全面请见谅. 打包控件 InstallShield-Limited-Edition  下面是注册地址 htt ...

随机推荐

  1. python selenium句柄操作

    一.获取当前窗口句柄 1.元素有属性,浏览器的窗口其实也有属性的,只是你看不到,浏览器窗口的属性用句柄(handle)来识别. 2.人为操作的话,可以通过眼睛看,识别不同的窗口点击切换.但是脚本没长眼 ...

  2. python requests自动化框架

    一.项目结构 1.新建一个工程(一定要创建工程),工程名称自己定义,如:yoyo_jiekou 2.在工程的跟目录新建一个脚本:run_main.py,用来执行全部用例 3.在工程下创建以下几个pak ...

  3. 新手入门HTML5开发,你必须先搞懂这6个问题

    凭借着跨平台,实时更新,无需安装,易于分发等众多优点,HTML5受到越来越多企业的青睐.而凭借着入门相对简单的优势,很多人编程初学者都选择学习HTML5.但对于初学者来说,学习HTML5之前,会有很多 ...

  4. powerCat进行常规tcp端口转发

    实战中,我们也会遇到需要我们进行端口转发的情况,比如已经拿下的目标机1是在dmz区,而目标1所在内网的其他目标只能通过目标1去访问,这时候我们就需要端口转发或者代理来进行后渗透.这次就要介绍一个加强版 ...

  5. 实验吧之【拐弯抹角】(url伪静态)

    题目地址:http://ctf5.shiyanbar.com/indirection/ 打开后给了源码 <?php // code by SEC@USTC echo '<html>& ...

  6. [POJ3107] Godfather - 暴力枚举(树的重心)

    Godfather Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8728   Accepted: 3064 Descrip ...

  7. 自学php有哪些好的方法

    很多php新手对于如何自学php很苦恼,找不到入门到方法,有些时候一个软件都下载不下来,后者环境都不能安装好,大大打击了学习的信心.那么如何能自学好php,学好php有哪些方法呢,接下来我就给同学们提 ...

  8. 为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?

    在阅读<阿里巴巴Java开发手册>时,发现有一条关于整型包装类对象之间值比较的规约,具体内容如下: 这条建议非常值得大家关注, 而且该问题在 Java 面试中十分常见. 还需要思考以下几个 ...

  9. git jenkins 基本部署 gitlab私有仓库

    从代码私有性方面来看,公司不希望员工获取到全部的代码,这个时候 GitLab 无疑是最佳的选择.但对于开源项目而言,GitHub 依然是代码托管的首选平台. 1.安装gitlab[root@gitla ...

  10. unity 开启外部摄像头

    在unity中建立一个image作为摄像头显示画面,然后通过命令render到image上即可. public WebCamTexture webTex; public string deviceNa ...