1、配置文件服务器
我这里用的是云服务器,使用nginx配置文件服务,nginx.conf添加如下配置
server {
listen 8000;
server_name localhost;
location / {
root /home;
autoindex on;
autoindex_exact_size off;
charset utf-8,gbk;
}
}
这样就可以从云服务上下载文件了。
2、放置更新包及版本信息
由于我们配置的文件服务器根目录是/home文件夹,所以将包含更新包package.zip及更新包信息文件version.json的文件夹放置到/home目录下,这样就可以通过http://ip:8000/Anta/package.zip来下载更新包。
version.json是更新包的信息,包含两个字段,Version是更新包的版本号,Description是更新描述信息
{"Version":"1.0.5.3", "Description":"更新内容\n1.优化流程\n2.修复已知bug\n3.添加新功能"}
注意:在打包package.zip的时候请直接选择需要打包的文件然后右键添加到压缩文件package.zip,这样就能在解压的时候直接拿到更新文件,不要将更新文件复制到一个新的文件夹中才压缩(因为更新程序在下载好更新包后会直接将它解压到当前目录,这样才会直接自动替换掉原来的旧文件,否则需要手动替换)
3、更新程序的使用
3.1 在项目中添加引用Updater
3.2 调用Updater并传参
AppName:程序名称
RemoteName:服务端更新包所在目录名
Url:更新服务地址
Version:当前版本号
private void CheckUpdate()
{
string updaterPath = AppDomain.CurrentDomain.BaseDirectory + "Updater.exe";
if (File.Exists(updaterPath))
{
Task.Run(() => {
try
{
var AppName = Assembly.GetExecutingAssembly().GetName().Name;
var version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
var UpdateInfo = "{\"AppName\": \"" + AppName + "\",\"RemoteName\": \"Anta\", \"Url\": \"www.smilekay.top:8000\",\"Version\":\"" + version + "\"}";
Process.Start(updaterPath, JsonConvert.SerializeObject(UpdateInfo));
}
catch (Exception ex)
{
Log.Error(ex.StackTrace);
}
});
}
else
{
MainViewModel.Instance.ShowToast("未发现更新器!");
}
}
大功告成:
下载地址: