C#

Запрос на обновление C#

Делаю программу, своего рода база данных (всяких мануалов, виды шмоток и т. д) для одной онлайн игры. Суть в том, что по большей мере все файлы программы, картинки, текста и т. д хранятся в нужных папках. Обновления у игры выходят не так часто, скажем 1 раз за квартал.
Хочется сделать функционал, когда пользователь заходит, он мог нажать условную кнопку "обновить" и у все новые файлы добавились в нужные папки и т. д
Может кто то сталкивался с подобной задачей? Спасибо

И вот еще вопрос. Знаю что для этого нужно будет брать какой нибудь хостинг и т. д, а возможно ли использовать свой компьютер как сервер для обновления? или это вообще бред и такого не существует?
Если это игра, то твой сервер на компьютере могут просто положить. DDoS атаки, да и просто если вдруг будет большой онлайн и 50% будет скачивать обновление. Скорости не хватит на всех.
А так, FTP сервер открываешь (есть готовые программы), прописываешь в лаунчере или отправляешь по запросу со стороны сервера ссылки. Все :)

Проверку на обновления можно сделать очень просто:
1) На клиенте, на лаунчере - перед тем как впускать игрока в бой, сделай запрос на сервер, с проверкой версией. Если версия отличается, то сделай проверку файлов и потом уже обновляй.
2) Можно сделать проверку контрольной суммы файлов, при каждом запуске игры. Будет отправляться запрос на сервер и сверяться этими данными на клиенте. Также это спасет от некоторых читеров.

Для аренды сервера, самое надежное решение это https://stormwall.pro/

ps для себя я делал вот так:

string pText = new WebClient().DownloadString("127.0.0.1/update/update.txt"); // версия программы, этот запрос выполняем при каждом запуске

f (pText.Split('|')[0] == Version.get_version)
{
MessageBox.Show("Обновление не требуется", "ИНФОРМАЦИЯ", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
DialogResult ok = MessageBox.Show("Обнаружена новая версия программы: " + pText.Replace("|", "\n") + "\nНажмите Да чтобы обновить версию.", "ИНФОРМАЦИЯ", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (DialogResult.Yes == ok)
{
WebClient webClient = new WebClient();
webClient.DownloadFile("127.0.0.1/update/srv.txt", "update.txt");
File.Move(@"this_programm.exe", @"this_programm.exeOLD");
File.Move(@"update.txt", @"this_programm.exe");
Thread.Sleep(500);
Application.Restart();
}
}
Trololo 777
Trololo 777
38 688
Лучший ответ
Игорь Виноградов В принципе все просто, спасибо!