快速创建软件安装包-ClickOnce
- 雪夜
- 2025-08-29
- 热度
大家好,我是沙漠尽头的狼。
今天我们将探讨如何使用ClickOnce来制作软件安装包。首先,让我们了解一下什么是ClickOnce。
- 什么是ClickOnce
以下段落摘自微软文档:https://www.php.cn/link/950c011d814448023c466411a35b6c62。
ClickOnce 是一种部署技术,它能创建自动更新的基于 Windows 的应用程序,这些应用程序可以通过最小的用户交互来安装和运行。
ClickOnce 部署解决了部署过程中常见的三个主要问题:
更新应用程序的困难:使用 Microsoft Windows Installer 部署,每次应用程序更新时,用户都需要重新安装整个应用程序;使用 ClickOnce 部署,则可以自动提供更新。只有更改的部分会被下载,然后从新的并行文件夹重新安装完整的、更新后的应用程序。
对用户计算机的影响:使用 Windows Installer 部署时,应用程序通常依赖于共享组件,这可能会导致版本冲突;而使用 ClickOnce 部署时,每个应用程序都是独立的,不会干扰其他应用程序。
安全权限:Windows Installer 部署需要管理员权限,并且只允许受限用户安装;而 ClickOnce 部署允许非管理员用户安装应用程序,并仅授予应用程序所需的代码访问安全权限。
过去,这些问题有时会促使开发人员选择创建 Web 应用程序而不是基于 Windows 的应用程序,以牺牲 Windows 窗体的丰富用户界面和响应性来换取便捷的安装。对于使用 ClickOnce 部署的应用程序,您可以同时享有这两种技术的优势。
- 使用ClickOnce创建安装包
2.1 需要服务器
首先,我们需要一个线上网站,用于托管软件更新文件。比如,在Dotnet9网站的根目录创建一个
WPFBlazorChat的目录,那么线上托管地址将是
https://www.php.cn/link/258d7a491108e4e48af85b904cef4654/WPFBlazorChat,目录如下:
2.2 开始制作安装包
记住上面的线上地址,我们使用前几天介绍的
WPFBlazorChat作为示例来制作安装包,仓库地址是:https://www.php.cn/link/1899267a7cab6c98197ea43751df1c07`。
选择
WPFBlazorChat工程,右键点击发布:
在弹出的界面中,选择ClickOnce,然后点击下一步:
发布位置可以随意选择:
选择软件安装包获取地址:
设置可配置程序运行时自动检测更新、软件版本号等,如下图所示:
如上图所示,如果勾选了【自动递增修订号】,那么每次点击发布时,修订号会自动递增(这主要是为了方便版本号管理)。
点击应用程序文件,可以选择哪些文件不需要下载,如下图所示:
选择先决条件,即选择程序的运行时。因为程序默认支持.NET 6和.NET 7,所以站长选择了.NET 7 x64,win7 32位的用户如有需要,可以按需选择:
选项配置软件安装包信息,其中比较重要的是发布者名称和套件名称,这些决定了软件程序的发布位置:
部署文件配置,其中Publish.html配置了安装包下载页面:
签名清单未设置,直接点击下一步:
程序发布配置按情况选择,站长选择了.NET 7 64位发布,注意需要与前面选择的.NET桌面运行时版本一致:
点击发布,最后一个操作,点击发布:
发布完成后,点击【发布位置】路径:
2.3 上传
上面制作了软件安装包,还差一个步骤,就是将安装包上传到网站上,这个步骤比较简单,前提是网站已经部署好了:
2.4 程序安装、运行
地址是:https://www.php.cn/link/e6489c47ee1a4c3252b06e7ed387eb90
如上图所示,显示了我们创建安装包时配置的软件安装包名称、版本号、发布者、需要的.NET运行时版本等。点击【安装】按钮,会下载一个
setup.exe安装文件,这个文件很小,只有666KB,一个很吉利的数字:
运行
setup.exe,它会自动从上面的服务器(https://www.php.cn/link/fa517434b82355390c5cb9831685d6a0:
下图是服务器软件安装包信息:
下图是安装过程的截图:
安装包下载完成后,程序会自动运行。下面是测试程序运行界面,由WPF Blazor开发,点击查看源码:
- Q&A
ClickOnce 部署的工作原理核心是基于两个 XML 清单文件:应用程序清单和部署清单。这些文件用于描述从哪里安装 ClickOnce 应用程序、如何更新这些应用程序以及何时更新它们。
更多信息请访问微软文档:https://www.php.cn/link/950c011d814448023c466411a35b6c62
本文到此结束,下篇将介绍在WPF中如何使用Blazor开发应用。
参考资料:
[1] Dotnet9: https://www.php.cn/link/258d7a491108e4e48af85b904cef4654
[2] 源码: https://www.php.cn/link/6e57a30d42233829bb65aab0262e463b