ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【C#桌面客户端系列学习-1】打包exe,并根据版本号实现自动更新

【C#桌面客户端系列学习-1】打包exe,并根据版本号实现自动更新 目录一、前言二、主要用到的技术1、AutoUpdater.NET2、Fody.Costura三、安装相关程序包1、安装Autoupdater.NET.Official2、安装Fody.Costura四、配置版本号五、准备更新用的XML文件六、代码中调用七、制作并上传更新包八、测试是否成功九、注意事项一、前言在桌面应用开发中让用户手动下载安装新版本客户端可能会产生一系列的问题最近在研究怎么通过版本号实现客户端自动更新同时只需要给用户一个打包好的exe即可不需要给一系列的文件。二、主要用到的技术1、AutoUpdater.NET专门为WinForms/WPF设计的轻量级更新库核心逻辑客户端启动时去服务器拉起一个XML这个xml是用来记录新版本的版本号和新版本下载路径对比版本号如果发现有新版本就弹窗提示用户用户确认后下载更新包并完成替换。2、Fody.Costura把依赖的DLL打包和项目一起打包成一个exe文件避免分发给用户时分发一堆dll只需要给一个exe即可。三、安装相关程序包1、安装Autoupdater.NET.Official在VS里我用的VS2022,在解决方案右键选择“管理NuGet程序包”搜索“Autoupdater.NET.Official”并安装。2、安装Fody.Costura同上一步一样搜索“Fody.Costura”并安装。Fody.Costura它的主要功能就是可以单独把生成的exe拿出来可以直接运行比如把bin/Debug/下的1.exe放到任何一个位置或分发给任何一个人只需要给这个exe就可以了不需要再把完整的文件夹给别人。Fody.Costura 的安装会自动引入 Fody 核心库。安装完成后项目根目录会出现FodyWeavers.xml内容默认即可确保包含Costura /节点。四、配置版本号点击解决方案右键 -》属性 -》应用程序 -》程序集信息 -》程序集版本、文件版本。新版本号要大于就版本号新版本自动更新就是根据这里的版本号判断的这一点很重要。我这里旧版本是1.0.0.0稍后新版本是2.0.0.0五、准备更新用的XML文件这个文件也很重要新旧版本号对比、新版本下载路径都在这里面配置。新建一个XML文件我这里取的文件名称是AutoUpdaterTest.xml并把这个文件上传到外网可访问的服务器上。?xml version1.0 encodingUTF-8? item version2.0.0.0/version !-- 必须比客户端程序集版本大 -- urlhttp://xxxxxx/1.zip/url !-- 安装包或zip下载地址 -- changeloghttps://xxxxxx/changelog.html/changelog mandatorytrue/mandatory !-- 是否强制更新 -- /item字段说明version必填项最新版本号必须高于就版本号url必填项新版本更新程序包的下载地址这个域名必须是外网可访问的支持http/https。可以是zip压缩包也可以是安装程序我这里是zip。changelog可选项更新日志链接不填则更新弹窗不显示日志按钮。mandatory可选项是否强制更新设为true时用户无法跳过必须强制更新。六、代码中调用在主窗体Load事件点击UI布局的空白处中添加这样程序在启动时就会自动检查更新。using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using AutoUpdaterDotNET; namespace _1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { AutoUpdater.Start(http://xxx/AutoUpdaterTest.xml); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show(您点击了弹窗); } } }主要添加引用“using AutoUpdaterDotNET;”、Form1_Load事件里添加“AutoUpdater.Start(http://xxx/AutoUpdaterTest.xml);”。七、制作并上传更新包1、新版本代码修改好后记得修改新版本的版本号和上面第四步一样。2、把新版本生成exe找到已经生成的exe我的在bin/Debug文件加下名称是1.exe把1.exe压缩直接压缩1.exe外面不要有额外的文件夹层确保解压出来就是1.exe。3、ZIP里的文件名必须和旧版本的名称完全一致。4、将压缩好的1.zip上传到上面xml里写的url路径urlhttp://xxxxxx/1.zip/url这个路径一定要完全一致。八、测试是否成功旧版本属性版本号是1.0.0.0运行旧版本提示更新点击更新下载更新已更新到新版本右键属性已是2.0.0.0了九、注意事项1、两个程序包Autoupdater.NET.Official和Fody.Costura一定要选择对别安装错了2、xml里的信息一定要填对服务器域名外网可访问3、新旧版本的版本号要注意4、新旧版本的文件名要完全一致C#桌面客户端系列学习可浏览专题学习https://blog.csdn.net/qq_25285531/category_13213077.htmlhttps://blog.csdn.net/qq_25285531/category_13213077.html
返回列表