Source Client Updater - Автоматические обновление клиента, апдейтер на примере Lineage II. написан на C#
Автоматические обновление клиента, апдейтер на примере Lineage II. написан на C#
Апдейтер состоит из 2х частей, сборщика апдейта и непосредственно самого апдейтера.
Для работы необходим .Net Framework 2.0
в апдейтере замените строку
private string UPDATE_URL = «http://update.localhost/»;
на свой адрес.
Салют!
Спасибо за шару!
Буду признателен если кто-то сможет разъяснить почему он не желает запускать скачанный клиент, а просто прячется в фоновых процессах.
C#:
private void PB_START_Click(object sender, EventArgs e)
{
//MessageBox.Show("скоро, очень скоро :)");
if (File.Exists(Application.StartupPath + "\\system\\l2.bin"))
{
this.Hide();
if (ProcessAsUser.Launch(Application.StartupPath + "\\system\\l2.bin"))
Application.Exit();
}
else
{
MessageBox.Show("Файл l2.bin не найден!");
}
}
larson, если не выдает сообщение "Файл l2.bin не найден!", значит файл существует, но по каким-то причинам запустить его не удается.
Пробовали запускать с правами администратора?
Есть вариант для запуска только exe файла, поскольку следующим способом запустить bin вряд ли получится
C#:
using System.Diagnostics;
...
Process.Start( Application.StartupPath + "\\system\\l2.exe" );
...
larson, если не выдает сообщение "Файл l2.bin не найден!", значит файл существует, но по каким-то причинам запустить его не удается.
Пробовали запускать с правами администратора?
Есть вариант для запуска только exe файла, поскольку следующим способом запустить bin вряд ли получится
C#:
using System.Diagnostics;
...
Process.Start( Application.StartupPath + "\\system\\l2.exe" );
...
попробуйте в методе Update класса Main добавить перехват исключений (все собрать и запустить еще раз)
C#:
private void Update(bool Type)
{
try
{
// весь код метода Update
}
catch ( Exception e )
{
MessageBox.Show(e.ToString());
}
}
и посмотреть не выдаст ли сообщение с ошибкой в момент зацикливания обновления каких-то файлов
Если выдает "ArgumentOutOfRangeException: Значение '100' недопустимо для 'Value'. 'Value' должно лежать в диапазоне от 'minimum' до 'maximum'" или апдейтер зависает на "Файл: blablabla не требует обновлений"
находим в классе Main в методе Update часть кода
C#:
else
{
MsgProgress("Файл: " + arLine[0] + " не требует обновлений");
UpdateProgressFile(100);
}
и меняем таким образом
C#:
else
{
MsgProgress("Файл: " + arLine[0] + " не требует обновлений");
setMaxProgressFile(100);
UpdateProgressFile(100);
}
Ну во всяком случае crc32 будет немного быстрее проверять клиент
Ну в апдейтере кода немного что к чему можно разобраться даже если новичок. + Сам VS приятен и располагает к быстрому обучению. Мне очень зашло )
когда я нажимаю на кнопку полной проверки, начинается полная загрузка данных, она сканирует все правильно, но ничего не загружает, в обновлении нет ошибки с кодом try catch, просто папка пуста.