Я сделал этот пример того, как проверить версию приложения local
и сравнить ее с версией remote
.Удаленный файл в этом случае представляет собой простой txt
, который содержит version number
и в следующей строке краткую информацию о том, где загрузить обновление при необходимости.
version-remote.txt
2.0.0.0
To download the latest version of the App, go to the website below.
Пример кода:
private void f_main_Load(object sender, EventArgs e)
{
VerifyUpdate();
}
//verifies that the local version
//is different from the remote version
private void VerifyUpdate()
{
//version local assembly version
var vlocal = new Version(Assembly.GetExecutingAssembly().GetName().Version.ToString());
//download remote version
var vremot = new Version(DoenloadVersion().FirstOrDefault());
var result = vlocal.CompareTo(vremot);
if (result < 0)
{
UpdateQuestion();
}
else if (result > 0)
{
DowngradeQuestion();
}
else
{
AlreadyUpdateQuestion();
}
}
//downloads the file containing the latest
//version number
private string[] DoenloadVersion()
{
string remoteUri = "https://storage.googleapis.com/albtoos_pessoal/version-remote.txt";
string localsave = ($"{System.IO.Directory.GetParent(@"../../").FullName}/version-remote.txt");
WebClient webversion = new WebClient();
//makes a copy of the remote version in the root folder
webversion.DownloadFile(remoteUri, localsave);
return File.ReadAllLines(localsave);
}
private void AlreadyUpdateQuestion()
{
DialogResult option = MessageBox.Show("You already have the last version!", "Program", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
if (option == DialogResult.Yes)
{
//do something
}
}
private void UpdateQuestion()
{
DialogResult option = MessageBox.Show("Need Update", "Program", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
if (option == DialogResult.Yes)
{
//do download
}
}
private void DowngradeQuestion()
{
DialogResult option = MessageBox.Show("Need Downgrade", "Program", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
if (option == DialogResult.Yes)
{
//do downgrade
}
}
Часть AlreadyUpdateQuestion()
, UpdateQuestion()
и DowngradeQuestion()
больше похожа на иллюстрацию, поскольку здесь многое зависит откак вы хотите работать с пользователем.Но если вам нужно загрузить что-то большее, например, файл установки обновления, вам нужно будет поработать с mehlor в этой функции.
Возможно, есть лучший способ сделать это, но следуйте этому в качестве начальной ссылки.