C#自动更新程序
项目代码
这个是服务端的地址
namespace AutoUpdate
{
public class 系统参数
{
public static 设置类 设置 { get; set; } = new();
}
public class 设置类
{
public Lmes连接参数类 Lmes连接参数 { get; set; } = new();
}
public class Lmes连接参数类
{
public string LMES地址 { get; set; } = @"http://127.0.0.1:5000/";
}
}服务端本地存放要更新的更新包的地址
确保地址已经创建好了。
public 自动更新Controller()
{
// 设置版本文件存储路径
// C:\Users\用户名\AppData\Roaming\Lmes_1.0\VersionInfo
存储路径 = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"Lmes_1.0",//可自行更改
"VersionInfo"//可自行更改
);
// 确保目录存在
if (!Directory.Exists(存储路径))
{
Directory.CreateDirectory(存储路径);
}
}更改客户端启动程序名称
将0后面的LMES更改为当前项目客户端的名称
// 创建更新批处理文件
string batchContent = @"
@echo off
:: 等待原程序退出
timeout /t 1 /nobreak
:: 复制新文件
xcopy /Y /E ""%~dp0Update\*.*"" ""%~dp0.""
:: 删除更新文件夹
rd /S /Q ""%~dp0Update""
:: 清理 Updates 文件夹
if exist ""%~dp0Updates"" (
rd /S /Q ""%~dp0Updates""
)
:: 启动程序
start """" ""%~dp0LMES.exe""//客户端的程序
:: 删除自身
del ""%~f0""
";压缩客户端程序
打开项目的文件夹D:\shixi\AutoUpdate\AutoUpdate\AutoUpdate\bin\Debug\net9.0-windows,将该目录下的文件压缩为.zip格式
第一次可能没有version.txt,之后压缩不要把version.txt选中。
一定要压缩成ZIP格式的,把rar重命名成ZIP也不行。
格式最好就是V版本号--CRC--Lmes,其他没试过

将压缩包放到设定的地址下

运行服务端,当客户端运行时会自动去请求服务端进行更新,重启
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
