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自带的有打包的功能..相信 ...
随机推荐
- [python之路]简单介绍
python介绍 #python是一个什么样的语言?编译型和解释型静态语言和动态语言强类型定义语言和弱类型定义语言python是一门动态解释性的强类型定义语言. #Python的优缺点##优点Pyth ...
- CCF_ 201509-3_模板生成系统
又是一道考验细心和耐心的题,不知道哪里出问题了,一直只有90分 = =! #include<cstdio> #include<iostream> #include<cst ...
- 第3章 JDK并发包(五)
3.3 不要重复发明轮子:JDK的并发容器 3.3.1 超好用的工具类:并发集合简介 JDK提供的这些容器大部分在java.util.concurrent包中. ConcurrentHashMap:这 ...
- asp.net EF core 系列 作者:懒懒的程序员一枚
asp.net core 系列 19 EFCore介绍写作逻辑一 .概述1.1 比较EF Core 和EF61.2 EF Core数据库提供程序 1.3 引用程序添加数据库提供程序1.4 获取Enti ...
- TomCat控制台中文乱码及IDEA设置为UTF-8
一.解决IDEA中的中文乱码 1.首先设置idea编辑器的编码: File-Setting设置如下 idea显示编码:windows默认用gbk所以idea显示默认为gbk编码,在 Help--Edi ...
- 地址ip丢失
好好的机器 ip地址没有了,好几台机器出现这个情况,目前判断是 NetworkManager 的问题: 先了解一下network和NetworkManager之间的区别,还有他们分别代表了什么. ...
- PHPExcel使用
参考链接: 官方github:https://github.com/PHPOffice/PHPExcel 设置表格字体颜色等操作:http://www.cnblogs.com/grimm/p/9 ...
- AJAX优势、跨域方案及JSON数据格式和浏览器中JSON对象
ajax 不重新加载整个网页的情况下,更新部分网页的技术 注意:ajax只有在服务器上运行才能生效,我在本地一般用phpstudy 优点: 1.优化用户体验 2.承担了一部分本该服务器端的工作,减轻了 ...
- SAP VL10B 报错 - 4500000317 000010 交付 $ 1 的交付项目 000010 与 POD 无关-
SAP VL10B 报错 - 4500000317 000010 交付 $ 1 的交付项目 000010 与 POD 无关- 如下公司间STO单据, 业务背景是货物从公司代码LYSP转入公司代码BTS ...
- robotframework安装与详解
Robot Framework(以下简称rf)是一款python编写的功能自动化测试框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行.主要用于轮次 ...