前言

做过WPF项目,就少不了要将程序打包部署到客户现场,因为一般长时间不会更新打包程序,每次变动较大需要重新配置打包程序时,就会有些生疏,不那么得心应手。为了方便记忆,记录到博客中。

准备

因为做过的项目都是用VS2015编写的,所以选择网上使用较多的Visual Studio Installer2015工具。

下载地址:Microsoft Visual Studio 2015 Installer Projects extension

下载完成后,直接运行安装即可。

打包

1.创建打包项目

右键——>新建项目——>选择其他项目类型——>选择Visual Studio Installer -  Setup Project

弹出如下窗体:

稍微解释一下:

第一个文件夹包含打包程序的所有文件(dll,ico等)内容,相当于普通项目中的Debug文件夹。

第二个文件夹包含将要安装者桌面显示的内容,一般以ico图标作为显示。

第三个文件夹显示在安装者电脑的开始菜单中,一般包含删除卸载程序的文件。

2.配置程序信息

选中新建的Setup程序,按F4打开属性窗口。

一般情况,修改Author、Description、Mnufcture、ProductName、Title属性即可,分别代表作者、程序安装时的描述、公司名、产品名、安装引导的标题。Mnufcture和Author将会显示控制面板查看程序时看到。

注意ProductCode属性,其值关系到卸载。

 3.程序封装


右键DemoSetup项目,选择View——>文件系统

选择第一个文件夹,右键Add——>项目输出

选择你要打包的主程序项目,选择为主输出,点击确定。注意这里添加后的文件并不全,可打开项目的Debug文件,对比一下,将缺少的其他文件或文件夹,图片等添加进来。当程序架构分层比较多时,比如界面模块和打包程序不一个项目,可以通过添加内容文件的方式添加进来。

 4.联动用户桌面与开始菜单

找到主输出 Output(Active),右键创建快捷方式。

找到刚创建的快捷文件,右键重命名为程序名称,安装完成后,它将显示到你桌面上。

剪切此文件到文件系统第二个文件夹下

选择快捷方式,打开属性窗口,可添加描述等,修改Icon,选择一个ico图标,这个图标可以直接来自文件系统第一个文件夹下。

选择文件系统第三个文件夹,创建一个文件夹,名字为你的程序名就行。

并重复创建一个主输出的快捷方式,粘贴到文件夹下。

然后,比较重要的一步来了,添加删除文件。提供系统卸载程序的功能。

找到C:Windows\System32\Msiexec.exe这个文件,把他复制到第一个文件夹(应用程序文件夹)下,并修改名字为卸载程序.exe,

创建它的快捷方式,打开快捷方式的属性窗口,填加Arguments值

一定要按照这个格式来 ,先填入 /x,然后加一个空格,复制上文中要你留意的Setup项目的属性ProductCode参数值,填入空格后面。

剪切此快捷方式粘贴到文件系统的第三个文件夹(用户开始菜单文件夹),放入你创建的文件夹中。

此后在创建一份卸载程序的快捷方式,同样添加Arguments值,选择真正的卸载程序文件,打开属性窗口,修改Hidden值为True,让其隐藏。这样用户在打开程序文件夹时,才能真正卸载程序。

 5.最后的配置

其实还可以修改很多东西,比如自定义用户引导界面了,只是感觉没太有必要,我一般不会去特别设置。

选择Setup项目右键——>View下的内容,都可以试着改一改,就不一一介绍了。

最后,右键Setup项目,选择属性,点击Prerequisites...,设置一个程序必备条件。

确定完成后,整个打包程序的配置就完成了,右键Setup项目,选择重新生成。

等待生成成功后,打开文件所在路径,找到Debug,生成两个文件,一个msi后缀,一个exe后缀,两者的区别就是msi文件安装后自动安装程序必备的.net框架。

尾声

网上也能找到一大堆教程,但总感觉说的不是很明白,虽然我介绍的啰里啰唆,但比较详细。方便我遗忘时回顾。

使用Visual Studio Installer 2015打包WPF程序的更多相关文章

  1. Visual Studio 2017&C#打包应用程序详细教程,重写安装类获取安装路径

    Visual Studio搞了个Click One,在线升级是方便了,但对于俺们这苦逼的业余程序猿就... 别着急,折腾一下,还是能做出打包安装程序的.请移步CSDN看smallbabylong的文章 ...

  2. C# winform Visual Studio Installer打包教程

    C# winform  Visual Studio Installer打包教程 软件在功能开发实现后,其实并没有真正的完成.对于一个专业的开发者来说,Release软件应该是以安装版本的形式进行发布的 ...

  3. Visual Stdio 2015打包安装项目的方法(使用Visual Studio Installer)

    首先在官网下载VS2015的Visual Studio Installer 1.创建安装项目 里面最左侧的框框有三个文件夹 1.“应用程序文件夹”即"Application Folder&q ...

  4. visual studio installer 打包123

    下载安装visual studio installer

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

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

  6. ASP.NET 打包发布中没有Visual Studio Installer

    环境:win7 64位 : VisualStudio2015 问题描述 创建安装程序时,VisualStudio中没有打包安装程序的Visual Studio Installer功能 解决方法 下载V ...

  7. Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案

    原文:Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案 如果你是用Visual Studio自带的打包项目打包了一个I ...

  8. C# winform Visual Studio Installer打包教程,安装包

    //具体打包过程,参考下面网址 https://www.cnblogs.com/dongh/p/6868638.html VS 扩展和更新-联机 搜索 Microsoft Visual Studio ...

  9. [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图

    [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图  1.用例图简介 定义:用例图主要用来描述“用户.需求.系统功能单元”之间的关系. ...

随机推荐

  1. Centos7 下安装mysql5.7.17(glibc版)

    一.安装前的检查 1.1 检查 linux 系统版本 [root@localhost ~]# cat /etc/system-release 1.2 检查是否安装了 mysql [root@local ...

  2. 【stm32开发之HAL采坑记之:001使用ST-LINK下载出错问题】

    使用ST-LINK下载出错问题 开发环境:swstm32+stm32cubeMx+硬石F1开发板 联系方式:yexiaopeng1992@126.com 出现问题:在使用ST-linik下载时发现,在 ...

  3. angular4实战开发问题——ngclass不起作用

    由于路由机制会导致页面不刷新. 在项目中,很多都是使用click做的路由跳转.ngclass有时候会不起作用, 这个时候我是很盲目的,一开始在考虑是不是书写的问题.ngclass需要有特定的格式?第一 ...

  4. Java面向对象概述和三大特性

    Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心.围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范.继承是类与类之间联系的一种形式.而多态 ...

  5. SQLSERVER 查询系统中的所有表的数量

    SELECT a.name, b.rows FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE (a.type = ...

  6. 介绍Kubernetes监控Heapster

    什么是Heapster? Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS,Kubernetes有个出名的监控agent—cAdvisor.在每个kubern ...

  7. 安装redis报错 you need tcl 8.5 or newer in order to run redis test

    解决方法: wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar -zxvf tcl8.6.1-src.tar.gz -C ...

  8. 各种CSS样式设置细线边框

    基础知识回顾 : cellspacing:单元格与单元格之间的边距:cellpadding:单元格内的内容与单元格边沿的边距 简单实用的样式,设置所有的单元格为细线效果 <style type= ...

  9. 原生JS封装创建多级菜单函数

    手写一个使用原生JS封装的多级菜单的函数,满足以下几点需求. 子类层级不确定,可根据数据自动生成多级菜单. 操作便捷,只需传入一个HTML标签. 缺点: 需要满足特定的数据结构 废话不多说,展示代码. ...

  10. VWmare设置挂载目录

     [root@localhost ~]# mkdir -p /mnt/cdrom  #首先创建一个挂载目录 [root@localhost ~]# mount -t auto /dev/cdrom / ...