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 打包和升级的更多相关文章

  1. vs2017 winform打包

    如果没有Visual Studio Installer 说明没有安装打包插件 安装打包插件:Microsoft Visual Studio 2017 Installer Projects 工具 --& ...

  2. 【C#】VS2017 winform 打包

    首先要在想要打包的项目下创建一个新的项目, 创建好setup项目,之后点击属性,去修改打包软件的名字,ProductName....可以选填 到此已经创建好了setup工程了,那么下面开始将要打包的d ...

  3. VS2017 winform 打包 安装(使用 Microsoft Visual Studio 2017 Installer Project)

    Microsoft Visual Studio 2017 Installer Projects SkyRiN发表于Coding+订阅 253 助力数字生态,云产品优惠大促 腾讯云促销,1核1G 99元 ...

  4. SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework

    9.1运行效果: 9.2开发实现: 1.首先配置服务器端,把“SNFAutoUpdate2.0\服务器端部署“目录按网站程序进行发布到IIS服务器上. 2.粘贴语句,生成程序 需要调用的应用程序的Lo ...

  5. Windows2000安装Winform Clickonce提示升级系统版本的解决方案

    Windows2000安装Winform Clickonce提示升级系统版本.只需要把所有应用的DLL的独立性设置为false就可以了.

  6. C# winform打包(带数据库安装)<转>

    使用VS自带的打包工具,制作winform安装项目 开发环境:VS2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管理系统 步骤: 1.打开开发环境VS2010, ...

  7. winform打包发布安装包详解..

    winform打包发布安装包详解..   使用VS 自带的打包工具,制作winform安装项目 开发环境:VS 2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管 ...

  8. Winform 打包 混淆 自动更新

    路径: 最终的解决方案是,ConfuserEx+Installshield+AutoUpdater.NET,ConfuserEx做代码混淆工作,Installshield可以解决注册表的问题,Auto ...

  9. Winform打包工具SetupFactory 9 的使用

    写了个WinForm的小程序..以前没打过包..只是直接把Bin里的东西复制出来使用..自己使用是足够.但是发给别人毕竟不太好看(不牛逼)..所以就想着打包.. Vs2012自带的有打包的功能..相信 ...

随机推荐

  1. Codeforces_734_F

    http://codeforces.com/problemset/problem/734/F x|y + x&y = x+y. #include<iostream> #includ ...

  2. 通过Python包来剪枝、蒸馏DNN

    用 Distiller 压缩 PyTorch 模型 作者: PyTorch 中文网发布: 2018年7月15日 5,101阅读 0评论 近日,Intel 开源了一个用于神经网络压缩的开源 Python ...

  3. Newcoder Wannafly13 B Jxy军训(费马小定理、分数在模意义下的值)

    链接:https://www.nowcoder.com/acm/contest/80/B 题目描述 在文某路学车中学高一新生军训中,Jxc正站在太阳下站着军姿,对于这样的酷热的阳光,Jxc 表示非常不 ...

  4. 你知道EasyX吗

    关于C++控制台上的图形界面,你知道一个东西叫做EasyX吗? 作为一个退役的OI选手(WTF?\(3^2-3^1\)年级退役?),在退役之后总想找点事情做. 开发个游戏?(我只会控制台) 学下人工智 ...

  5. Chrome恢复显示网址 https:// 和 www

    文章来自我的博客: https://blog.ljyngup.com/archives/686.html/ Chrome这个新规弄得我也很蛋疼,每次一点输入框就突然突出来一下.后来在Hostloc论坛 ...

  6. 2019全国大学生信息安全大赛两道web

    简单小结 菜鸟第一次打国赛,这次题目质量很高,学到了许多姿势. Web Justsoso 打开题目,源代码出存在提示: 使用LFI读取index.php与hint.php http://d4dc224 ...

  7. C++ 基础--虚构函数

    virtual 函数 示例代码如下: #include <stdio.h> class base { public: virtual void name(){printf("ba ...

  8. 20200105--python学习第七天

    今日内容 深浅拷贝 文件操作 内容回顾及补充 1.内容回顾 计算机基础 编码 语法 if/while/for 数据类型 type/id/range 运算符 2.面试题 a.公司线上的系统用的是什么? ...

  9. debian wget 报ERROR: The certificate of ‘xxx’ is not trusted.

    # wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz --2019-01-11 15:04:41-- https://w ...

  10. 忘记centos的root用户密码怎么办?

    1 重置centos7管理员密码 1.1 重置centos7管理员密码的几个步骤 1)重启服务器后,在grub菜单界面,根据界面显示的提示信息,按 e 进入编辑模式.注意:是否开启selinux,重置 ...