C# VS2017 WinForm 打包和升级
C# WinFrom打包不怎么常用,但一年总有那么一两次,每次都记不全,为了方便自己回看,于是有了本篇文章。
本例使用《C#工具类LogHelper》的解决方案作为例子,实现WinForm打包,以及升级的功能,本文使用VisualStudio2017工具。
一、在解决方案--添加--新建项目,选择其它项目类型--Visual Studio Installer,选择Setup Project。

点击确定后如下图所示,会安装一个Setup1的安装程序配置项目。

如果没有找到“Visual Studio Installer”,可到 VS 工具栏 > 工具 > 扩展和更新 > 联机 > 搜索 Microsoft Visual Studio Installer Projects 并安装。安装完成后需要重启 VS。

二、设置软件图标。
到https://www.easyicon.net/随便搜索一个ico后缀的图标,并放到项目的Icon文件夹下。

为主窗体添加图标:

三、设置导入内容
1、点击Application Folder ->Add -> 文件。

2、选择项目bin Debug文件夹,Ctrl+A 全选所有内容,之后点击"打开"。


3、如果有文件夹,需在 Application Folder ->Add-> Folder中添加。本项目有Log文件夹和Icon,所以在 Application Folder 需要添加Log文件夹和Icon文件夹,如下图所示。

添加Log文件夹和Icon文件夹后:



四、设置输出内容
1、选择在Application Folder-->Add-> 项目输出 。

2、点击确定。


3、在"主输出from xxx",右键--Create Shortcut to 主输出 from xxx


4、将"Shortcut to 主输出 from xxx"拖动到 User's Desktop。


将 User's Desktop的"Shortcut to 主输出 from xxx"自定义名称,此处我改为WinFormDemo,并设置图标。


五、设置卸载项
1、点击Application Folder ->Add -> 文件,选择“C:\Windows\System32” 中的 msiexec.exe。

2、将msiexec.exe 创建一个快捷方式,并改名为 Uninstall 。


3、创建好Uninstall 快捷方式后,点击SetUp的属性,复制ProductCode中的内容。

4、 将复制好的ProductCode 内容,粘贴到创建好的Uninstall的属性Arguments中,并在ProductCode 前加入“/X”

5、总的来讲就是将“主输出from xxx”和msiexece.exe创建快捷方式,并分别重命名后,拖动到 User's Programs Menu。这个的作用就是在用户程序菜单显示程序的进入快捷方式和卸载快捷方式。


创建文件夹WinFormDemo,并将两个Shortcut移到文件夹里,如下图所示。

六、设置版本覆盖。

七、生成
在Setup1右键,生成。

生成后,在Setup1的项目的Debug下就有安装文件的exe了。

八、效果
安装后效果如下:


九、升级
1、在AssemblyInfo.cs设置新版本号。

2、将Setup1属性里的Version同步更改,会提示会改会ProductCode,点击“是”即可。

注:这里Version的版本号只有3位,如果设为1.0.0.1,则在发布时显示此错误“ERROR: Invalid product version '1.0.0.1'. Must be of format '##.##.####'”,若有知晓的朋友请告知。
3、修改所有Unistall的Arguments为:/X {新的ProdcutCode}

4、生新发布Setup后,安装exe,最后效果如下:

十、下载
https://files.cnblogs.com/files/suterfo/WinFormDemo.rar
参考文章:
1、https://blog.csdn.net/u014234260/article/details/80067254
2、https://blog.csdn.net/lxrj2008/article/details/80611164
3、https://blog.csdn.net/m0_37862405/article/details/80785294
4、https://www.cnblogs.com/duanweishi/p/11114332.html
C# VS2017 WinForm 打包和升级的更多相关文章
- vs2017 winform打包
如果没有Visual Studio Installer 说明没有安装打包插件 安装打包插件:Microsoft Visual Studio 2017 Installer Projects 工具 --& ...
- 【C#】VS2017 winform 打包
首先要在想要打包的项目下创建一个新的项目, 创建好setup项目,之后点击属性,去修改打包软件的名字,ProductName....可以选填 到此已经创建好了setup工程了,那么下面开始将要打包的d ...
- VS2017 winform 打包 安装(使用 Microsoft Visual Studio 2017 Installer Project)
Microsoft Visual Studio 2017 Installer Projects SkyRiN发表于Coding+订阅 253 助力数字生态,云产品优惠大促 腾讯云促销,1核1G 99元 ...
- SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework
9.1运行效果: 9.2开发实现: 1.首先配置服务器端,把“SNFAutoUpdate2.0\服务器端部署“目录按网站程序进行发布到IIS服务器上. 2.粘贴语句,生成程序 需要调用的应用程序的Lo ...
- Windows2000安装Winform Clickonce提示升级系统版本的解决方案
Windows2000安装Winform Clickonce提示升级系统版本.只需要把所有应用的DLL的独立性设置为false就可以了.
- C# winform打包(带数据库安装)<转>
使用VS自带的打包工具,制作winform安装项目 开发环境:VS2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管理系统 步骤: 1.打开开发环境VS2010, ...
- winform打包发布安装包详解..
winform打包发布安装包详解.. 使用VS 自带的打包工具,制作winform安装项目 开发环境:VS 2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管 ...
- Winform 打包 混淆 自动更新
路径: 最终的解决方案是,ConfuserEx+Installshield+AutoUpdater.NET,ConfuserEx做代码混淆工作,Installshield可以解决注册表的问题,Auto ...
- Winform打包工具SetupFactory 9 的使用
写了个WinForm的小程序..以前没打过包..只是直接把Bin里的东西复制出来使用..自己使用是足够.但是发给别人毕竟不太好看(不牛逼)..所以就想着打包.. Vs2012自带的有打包的功能..相信 ...
随机推荐
- Elasticsearch系列
一.Elasticsearch简介 二.elasticsearch集群监控相关
- BZOJ 1601 [Usaco2008 Oct]灌水 (建图+mst)
题意: 300个坑,每个坑能从别的坑引水,或者自己出水,i从j饮水有个代价,每个坑自己饮水也有代价,问让所有坑都有谁的最少代价 思路: 先建一个n的完全图,然后建一个超级汇点,对每个点连w[i],跑m ...
- Python原来这么好学-1.2节: 在Linux中安装python
这是一本教同学们彻底学通Python的高质量学习教程,认真地学习每一章节的内容,每天只需学好一节,帮助你成为一名卓越的Python程序员: 本教程面向的是零编程基础的同学,非科班人士,以及有一定编程水 ...
- TCP协议三次握手(通信)
在<计算机网络>一书中其中有提到,三次握手的目的是“为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误”,这种情况是:一端(client)A发出去的第一个连接请求报文并没有丢失 ...
- 网络安全初级实战笔记(一):owasp zap 暴力破解
网络安全里装着好多人的侠客梦.但是不能触碰铁律,所以,只小小的自娱自乐. 自己练习,大都会用到DVWA,一个很好的安全测试平台,自己搭建(很简单,傻瓜式搭建),自己设置安全级别,自己验证各种漏洞攻击方 ...
- EF core (code first) 通过自定义 Migration History 实现多租户使用同一数据库时更新数据库结构
前言 写这篇文章的原因,其实由于我写EF core 实现多租户的时候,遇到的问题. 具体文章的链接: Asp.net core下利用EF core实现从数据实现多租户(1) Asp.net core下 ...
- 达梦数据库-RAC-DMDSC部署的关键点
达梦数据库-RAC-DMDSC部署的关键点 环境准备 网络准备(ip地址分配).共享磁盘准备和挂载 ifconfig enp0s8 10.1.2.101;ifconfig enp0s9 192.168 ...
- SNMP协议交互学习-获取udp的udpindatagrams
MIB的组织结构,如下左图,对于udp来说1.3.6.1.2.1.7,组织如下右图,包括4个标量和1个表格 udp节点在LwIP中的定义如下: ] = { , , , , }; ] = { (stru ...
- 编写windows服务程序
2012-11-02 08:54 (分类:计算机程序) windows服务是一个运行在后台并实现勿需用户交互的任务的控制台程序,对于隐藏程序有很大帮助. 用了几天时间概括了编写windows服务程序的 ...
- 浅谈单利模式及其应用场景(Python)
python 中的单利模式 使用场景: + Python的logger就是一个单例模式,用以日志记录 + Windows的资源管理器是一个单例模式 + 线程池,数据库连接池等资源池一般也用单例模式 + ...