Winform部分
- 新建winform/wpf,我这里创建的是winform,程序名UpdateDemo
- 在NuGet安装必备库Autoupdater.NET.Official,我这里安装的版本是1.9.2
- 在页面上写一个label
- 在Form1的构造函数写入代码
- AutoUpdater.Start("http://172.30.3.158:80/AutoUpdater.xml");这里填写自己的IP
public Form1()
{
InitializeComponent();
AutoUpdater.Start("http://172.30.3.158:80/AutoUpdater.xml");
string version = Application.ProductVersion;//获取当前版本号
label1.Text = version;
}
Setup project部分,不需要用这个直接跳Autoupdater.NET.Official部分
1.新建setup project
没有的话自行安装,扩展-管理扩展-Microsoft Visual Studio Installer Projects 2022
2.如图
1.Application Folder这是安装程序的主要目标目录,用来存放应用程序的核心文件
2.User's Desktop是用来存放快捷方式或文件,使用户可以快速访问应用程序
3.User's Programs Menu对应的是 Windows 开始菜单中的“所有程序”或“程序”部分,包括启动程、卸载等
3.Application Folder右键Add,选择项目输出点击确定
4.添加图标
Application Folder右键Add,选择文件,必须为icon
现在所有的文件是这样的
5.找到主输出 from UpdateDemo(Active),这个是自己项目,然后右键选择第一个Create Shortcut to主输出 from UpdateDemo(Active),创建好的就是快捷方式,我命名UpdateDemo
把UpdateDemo剪切到User's Desktop,在创建一次UpdateDemo,把他剪切到User's Programs Menu,在User's Desktop界面点击UpdateDemo右键属性窗口,
选择icon
进入后再次点击Browse,选择Application Folder的icon点击Ok即可,User's Programs Menu的操作一样
右键生成
在他的Debug文件夹下有俩个安装文件,随便哪个都行
Autoupdater.NET.Official部分
新建文件夹Update建立俩个文件,AutoUpdater.xml,AutoUpdaterLoger.html
在c#程序中,AutoUpdater.Start("http://172.30.3.158:80/AutoUpdater.xml");这俩名称得对应
1.AutoUpdater.xml
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>1.0.0.1</version>
<url>http://172.30.3.158:80/NewAutoUpdater.zip</url>
<changelog>http://172.30.3.158:80/AutoUpdaterLoger.html</changelog>
<mandatory>true</mandatory>
</item>
version:当前版本,我这里设置了1.0.0.1,以利于更新
url:更新安装包url地址,我这里的IP是up主的IP你们得设置设自己的,不会就localhost
<url>http://localhost/NewAutoUpdater.zip</url>
changelog:升级框中显示的内容
mandatory:是否强制更新
2.在AutoUpdaterLoger.html
自己随便写点html内容,如果不会也可以把这个删掉
<changelog>http://172.30.3.158:80/AutoUpdaterLoger.html</changelog>
<!DOCTYPE html>
<html>
<header>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
</header>
<body>
<h1>
更新咯
</h1>
</body>
</html>
部署到IIS
将Update文件夹部署到IIS,网站右键添加网站,网站名称随便填
按我这样子来,点击确定即可,没有IIS的自己百度搜搜,这里我就不过多说了,挂不上去的也可以百度搜搜原因,有很多教程
接下来确定是否成功。我们的Update文件夹有俩个文件
在浏览器中http://172.30.3.158/autoupdater.xml,这样子有内容就是对的
更新部分准备工作
把自己的winform界面随便改下
项目-属性-程序集信息改成与autoupdater.xml一样的1.0.0.2,生成
不用Setup project更新
把bin文件夹下的debug文件夹的内容全部打包成zip,放入Update文件夹,命名为NewAutoUpdater.zip
现在我们要把vs版本改回1.0.0.0测试
点击启动,弹出这个点击更新就好了,
使用Setup project更新
必须要有俩台电脑测试
电脑A存放新的winform的exe程序
电脑B存放旧的winform的exe程序
在电脑B中点击exe程序下载,程序路径存放到指定的文件夹
在电脑A下载exe程序,然后点击安装到自己的路径下
把电脑A的程序全部打包成zip,同样命名为NewAutoUpdater.zip,放在我们之前建立的Update文件夹中
现在操作电脑B打开我们已经下载好的程序(按我上面设置的话桌面和菜单都有),运行后,会跳出更新更新成功后显示版本信息
到此结束!
更新原理
wpf和winform的操作都是一样的,其实原理就是把生成的文件全部打包成zip然后通过url取出覆盖自己原来程序的文件
小问题
美中不足的就是Autoupdater.NET.Official不支持增量更新,他每次都是把全部覆盖的,
增量更新指只下载应用修改过的部分,而非整个程序。AutoUpdater.NET.Official(AutoUpdater.NET 的官方实现)默认不支持增量更新。
如果得使用增量更新的可以考虑Squirrel.Windows,自带的ClickOnce(就是vs中的发布,里面)可以设置,但是这个不能设置图标,或者使用软件advancedinstaller(付费)
谢谢大家的观看,觉得文章好的点点关注和赞
如果这篇文章对您有帮助,希望能得到您的支持。
写文章不易,码字费脑,靠打赏续命~