更新答案:
所以你的文件在你的服务器上。当发生实际更新时,您需要将所有文件下载到用户计算机上的安装目录。为简化此操作,请从这些文件创建一个存档 (.zip)。
我们还需要一个包含已归档应用程序版本号的文件。 所以创建一个简单的文本文件 (.txt)。 文件的内容只能是版本号(例如:1000)。此文件中的版本号不能为负数或 0。当您要更新时,创建一个新的存档 (.zip) 文件并增加文本文件中的版本号。
现在魔术开始了。 创建一个 Visual Studio Windows 窗体应用程序。此应用程序在执行时将检查更新,如果需要下载它们,然后运行应用程序(即在服务器上)。为此,我们需要一种方法来判断安装了哪个版本。为此,我们将使用 应用程序设置。 创建一个名为“版本”的设置,即整数。值必须为 0,表示该应用程序(服务器)以前从未安装过。
当应用程序启动时,我们将下载字符串在“version.txt”中,即在服务器上使用(C#示例):
WebClient 客户端 = new WebClient();
string latest_string = client.DownloadString("MyServer.net/version.txt");
然后将字符串转换为整数,以便我们可以比较它与应用程序设置中存储的版本(C# 示例):
int latest = Int32.Parse(latest_string);
然后我们使用一个简单的 if 语句(C# 示例):
if(Properties.Settings.Default.version //更新可用
}else {
//午餐程序并跳过更新
}
如果更新可用我们要下载存档,将其解压缩到午餐位置并执行程序。
下载(C# 示例):
使用 (var client = new WebClient(){
client.DownloadFile("MyServer.net/Update.zip", "Update.zip");
}
为了提取我们使用 ZipFile 类 (help link)(C# 示例):
string dir = Environment.CurrentDirectory + "MyApp";
if(Directory.Exists(path)){
Directory.Delete(dir, true);
}
ZipFile.ExtractToDirectory( "Update.zip", 目录);
我们需要更新版本设置,因为应用程序已经更新,我们不想继续下载(C#示例):
Properties.Settings.Default.version = "最新";
Properties.Settings.Default.Save();
启动进程(C#示例):
进程 myProcess = new Process();
myProcess.StartInfo.FileName = "dir + "run.exe";
myProcess.Start();
最后我们关闭应用程序并让应用程序运行(C# 示例):
Environment.Exit(0);
我已尽力解释这一点,希望对您有所帮助。我今年 15 岁,英语不是我的第一语言,对于答案中的错误,我深表歉意。