项目代码

AutoUpdateNET-main.zip

这个是服务端的地址

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,其他没试过

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

运行服务端,当客户端运行时会自动去请求服务端进行更新,重启