目录

1. 什么是ClickOnce

2. 使用ClickOnce创建安装包

2.1 需要服务器

2.2 开始制作安装包

2.3 上传

2.4 程序安装、运行

3. Q&A

参考资料


今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne。

1. 什么是ClickOnce

以下段落摘自微软文档:https://learn.microsoft.com/zh-cn/visualstudio/deployment/clickonce-security-and-deployment?view=vs-2022。


ClickOnce 是一种部署技术,使用该技术可创建自行更新的基于 Windows 的应用程序,这些应用程序可以通过最低程度的用户交互来安装和运行。

ClickOnce 部署克服了部署中所固有的三个主要问题:

1、更新应用程序的困难

使用 Microsoft Windows Installer 部署,每次应用程序更新,用户都必须重新安装整个应用程序;使用 ClickOnce 部署,则可以自动提供更新。只有更改过的应用程序部分才会被下载,然后从新的并行文件夹重新安装完整的、更新后的应用程序。

2、对用户的计算机的影响

使用 Windows Installer 部署时,应用程序通常依赖于共享组件,这便有可能发生版本冲突;而使用 ClickOnce 部署时,每个应用程序都是独立的,不会干扰其他应用程序。

3、安全权限

Windows Installer 部署要求管理员权限并且只允许受限制的用户安装;而 ClickOnce 部署允许非管理用户安装应用程序并仅授予应用程序所需要的那些代码访问安全权限。

过去,这些问题有时会使开发人员决定创建 Web 应用程序而不是基于 Windows 的应用程序,为便于安装而牺牲了 Windows窗体丰富的用户界面和响应性。对于使用 ClickOnce 部署的应用程序,您可以集这两种技术的优势于一身。

2. 使用ClickOnce创建安装包

2.1 需要服务器

首先,我们需要一个线上的网站,用于托管软件更新文件,比如在Dotnet9[1]网站的根目录创建一个WPFBlazorChat的目录,那么线上托管地址则是https://dotnet9.com/WPFBlazorChat,目录如下:

2.2 开始制作安装包

记住上面的线上地址,使用前几天介绍的WPFBlazorChat做为示例做安装包,仓库地址是:https://github.com/dotnet9/WPFBlazorChat,所以上面创建的目录与项目名同名:WPFBlazorChat

1、选择WPFBlazorChat工程,右键发布

2、在弹出的界面,选择ClickOnce,点击下一步

3、发布位置随意

4、选择软件安装包获取地址

5、设置

  • 可配置程序运行时自动检测更新、软件版本号等,如下图:

如上图,如果勾选【自动递增修订号】,那么每次点击发布,修订号会递增(感觉说的是废话,主要是方便版本号管理)。

  • 点击应用程序文件,可勾选哪些文件可以不用下载,如下图:

  • 选择先决条件,即选择程序的运行时,因为程序默认支持.NET 6和.NET 7,所以站长勾选了.NET 7 x64,win7 32位的同学如有需要,按需选择:

  • 选项配置

配置软件安装包信息,其中比较重要的是发布者名称和套件名称,决定软件程序释放位置:

部署文件配置,其中Publish.html配置了安装包下载页面

6、签名清单

未设置,直接下一步:

7、程序发布配置

按情况选择,站长选择的.NET 7 64位发布,注意需要和前面选择.NET桌面运行时版本一致

8、点击发布

最后一个操作,点击发布

发布完成,点击【发布位置】路径:

2.3 上传

上面制作了软件安装包,还差一个步骤,就是把安装包丢网站上去,这个就比较简单了,前提是网站已经部署了哈:

2.4 程序安装、运行

地址是:https://dotnet9.com/WPFBlazorChat/Publish.html

如上图,显示了我们创建安装包配置的软件安装包名称、版本号、发布者、需要的.NET运行时版本等,点击【安装】按钮,会下载一个setup.exe安装文件,这个文件很小,666KB,好吉利的数字:

运行setup.exe,会自动从上面的服务器(https://dotnet9.com/WPFBlazorChat/)中检测版本号、文件更新情况,自动下载程序文件了:

下图是服务器软件安装包信息:

下图是安装过程截图:

安装包下载完成后,程序自动运行,下面就是测试程序运行界面了,WPF Blazor开发的哟,点击戳源码[2]:

3. Q&A

  1. ClickOnce 部署的工作原理

核心 ClickOnce 部署体系结构基于两个 XML 清单文件:应用程序清单和部署清单。这些文件用于描述从哪里安装 ClickOnce 应用程序、如何更新这些应用程序以及何时更新它们。

更多请访问微软文档:https://learn.microsoft.com/zh-cn/visualstudio/deployment/clickonce-security-and-deployment?view=vs-2022

本文完,下篇介绍WPF中如何使用Blazor开发应用。

参考资料

[1]

Dotnet9: https://dotnet9.com

[2]

源码: https://github.com/dotnet9/WPFBlazorChat

快速创建软件安装包-ClickOnce相关推荐

  1. 快速下载软件安装包IDM+KinhDown

    1.自行搜索下载安装好IDM: 2.在浏览器输入网址:KinhDown[BaiDuCloud]在线解析https://baidu.kinh.cc/ 3.寻找自己想要下载的 安装包链接+提取码,在Kin ...

  2. 专业的软件安装包可以这样做!

    C/S客户端开发完成,需要将程序交付给用户,直接压缩发给用户是可以的(只是有点不专业),如果能有一个比较好看的安装界面,那档次就不一样了. 本文介绍怎么使用Adanced Installer 17.9 ...

  3. 超详细的软件安装包制作打包流程(C/S客户端)

    C/S客户端开发完成,需要将程序交付给用户,直接压缩发给用户是可以的(只是有点不专业),如果能有一个比较好看的安装界面,那档次就不一样了. 本文介绍怎么使用Adanced Installer 17.9 ...

  4. 速取,3D建模速成入门到高级教程(附软件安装包)

    同名公号回复"入门资料"获取3D建模速成入门到高级教程 大家好,我是华维导师,从事游戏建模师已有10年,曾参与过腾讯<漫威>,<魂斗罗>.网易<阴阳师 ...

  5. After Effects 2021软件安装包

    Ae 2021的全称是After Effects 2021,它是由Adobe公司研发推出的一款功能强大全面的视频制作软件,这款软件不仅仅可以帮助用户制作出各种精彩且有创意的动画.视频等作品,还可以凭借 ...

  6. Studio One Pro5软件安装包下载及安装教程

    Studio One Pro5软件安装包下载及安装教程 PreSonus Studio One是PreSonus出品的一款功能强大的音乐创作软件 Studio One Pro5下载地址: 百度网盘 百 ...

  7. C++编程【Visual Studio 2017 环境搭建教程】【附:软件安装包】

    学习网址:哔哩哔哩网站--黑马程序员C++从0到1入门编程(附C++编程环境搭建教程) 软件安装包:visual_studio_community_2017_version_15.3.exe 链接:h ...

  8. Pocket PC/Smartphone软件安装包之制作DIY

    Pocket PC/Smartphone软件安装包之制作DIY<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:of ...

  9. cad常青藤插件_CAD 2020软件安装包+插件大合集+完整视频教程,自学也可以的

    CAD软件作为工程人常用的软件之一,功能非常的强大,应用的范围也很广泛.想要熟练操作应用CAD软件,当然也少不了便捷的软件插件. 常用的CAD软件,也就是所谓的三维制图软件,较二维的图纸和二维的绘图软 ...

最新文章

  1. USBSpirit(USB精灵)更新到1.2.300.105
  2. gRPC in ASP.NET Core 3.x - gRPC 消息定义
  3. SpringBoot自动装配源码解析
  4. 30-40岁的程序员们,请把一些账算清楚,为过冬做准备(一)
  5. 【最新砍价小程序源码】
  6. VulnHub渗透实战--Bytesec
  7. 一个工业相机通用类解决大部分业内流行相机的访问(基于大华相机的动态链接库开发的通用相机类)C#版
  8. 台式计算机如何连接投影仪,台式机PC怎样与投影仪连接
  9. Struts2通配符映射的各种情况详情
  10. 用于热水器行业气密性检测的五款快速密封接头
  11. Linux系统安全强化指南
  12. 关于idea链接oracle数据库出现[08006][17002] IO 错误: Got minus one from a read call, connect lapse 1 ms., Authen
  13. java:从淘宝获取优惠券的、带推广链接的、带淘口令的商品信息
  14. 【云原生 • Kubernetes】集群资源监控概述、监控平台的搭建
  15. 读书笔记5 《精进:如何成为一个很厉害的人》 采铜
  16. Sentinel限流熔断
  17. android模拟器游戏大全,安卓模拟器游戏大全_小鸡模拟器
  18. 极简之SVN使用,入职必备
  19. lambda的peek(流元素操作),filter(过滤),map(映射),limit(截断),skip(跳过),collect,distinct(去重)函数使用
  20. Hive-beeline启动脚本

热门文章

  1. Openjudge:石头剪刀布
  2. springboot的基本增删改查
  3. XML(可扩展标记语言)的详细介绍 概念、语法与实例
  4. 上海微创软件公司简介
  5. 联想手机首发高通旗舰处理器骁龙855,能否借此打出一场翻身仗?...
  6. 如何创建自己的小程序?
  7. 图解Winhex解析BMP文件数据实例
  8. 38 个非常有用的 JavaScript 单行代码汇总
  9. post默认总是不幂等的吗_刺客的场均输出总是不超过25%算正常吗?
  10. 漏洞扫描工具-Nikto