Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281

Задваивается Updater

17.12.2017, 18:53. Показов 2312. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создал 2 проги основную и сам апдейтер, перед запуском основной идет проверка с файлом на сервере, в котором прописана текущая версия, если не совпадает, то открывает updater.
Но у меня получается зацикливание, потому что после пересоздания файлов, txt файл не обновляется.
Как автоматически на сервере обновлять txt с версией?

Код апдейтера(1 скрин)
programm.cs файл основного(2 скрин)
Миниатюры
Задваивается Updater   Задваивается Updater  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.12.2017, 18:53
Ответы с готовыми решениями:

Сделать Updater
Помогите сделать Updater. Должна быть 1 форма и на ней прогресс бар. И больше нечего. Что программа должна делать. Проверить есть ли...

Подключение dll в Updater-е
Доброе время суток! Есть ПО, которое необходимо автоматически обновлять. ПО работает с БД SQLite. При запуске программы она должна...

Updater для Aion: разобратся с исходниками
Всем добрый вечер. Были у меня исходники одного updatera для Aion (mmorpg) Переделал их немножко и т.д И столкнулся с проблемой. ...

45
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
17.12.2017, 19:01
Dimasta1488, выложи код в виде текста
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
17.12.2017, 19:03  [ТС]
Код Основного
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 private void Form1_Load(object sender, EventArgs e)
        {
            Version currentVersion = Assembly.GetExecutingAssembly().GetName().Version;
            label1.Text =("Доступно новое обновление "+ Convert.ToString(currentVersion)+"\n хотите обновить?");
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            WebClient client = new WebClient();
            Uri uri = new Uri("http://kracer.ru/data/documents/biki.zip");
            string File = "C:\\Быки и коровы\\biki.zip";
            client.DownloadFileAsync(uri, File);
 
            Process.Start("C:\\Быки и коровы\\WindowsFormsApp1.exe");
            Process currentProcess = Process.GetCurrentProcess();
            currentProcess.Kill();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Process.Start("C:\\Быки и коровы\\WindowsFormsApp1.exe");
 
            Process currentProcess = Process.GetCurrentProcess();
            currentProcess.Kill();
        }

Код upd
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
 
            Version currentVersion = Assembly.GetExecutingAssembly().GetName().Version;//текущая версия
 
            WebClient http = new WebClient();
            Version latestVersion = new Version(http.DownloadString("http://kracer.ru/data/documents/version.txt"));//Новая версия
 
            if (latestVersion == currentVersion)
            {    
                Application.Run(new game());
            }
            else
            {
                System.Diagnostics.Process.Start(@"C:\\Быки и коровы\\Updater.exe");
            }
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
17.12.2017, 19:06  [ТС]
Когда запускаю основную, вылезает окно(скрин)(все правильно), но потом я нажимаю обновить, и заного оно же вылезает.
Это из-за того, что на сервере не обновляется файл с текущей версией, как его обновить?
Миниатюры
Задваивается Updater  
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
17.12.2017, 20:24  [ТС]
ПОМОГИТЕ!!!!!

Добавлено через 23 минуты
ХЕЕЕЕЕЛЛЛППП пожалуйста
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
17.12.2017, 20:46
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
Это из-за того, что на сервере не обновляется файл с текущей версией
Нет, не из-за этого! А из-за того, что у Вас логика работы программы несколько... странная! Вы сами то хоть понимаете что у Вас в программе происходит?
Во-первых, насколько я понимаю, у Вас 3 программы - какой-то лаунчер, апдейтер и, собственно, сама игра? Это, безусловно круто!!!! Но нах... такие заморочки в саратовском зоопарке??? Должно быть всего 2 ехешника!
Во-вторых, вдумайтесь в логику своего кода... Сейчас там такой ужос творится, что даже обсуждать это не хочется...

Добавлено через 1 минуту
ЗЫ. Я же Вам расписал логику работы - Создаю UPDATER, в program.cs, но выдает ошибку "файл занят другим приложением". А Вы что намудрили?
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
17.12.2017, 20:53  [ТС]
1)Ну допустим я переделаю 3 exe в 2, но как в итоге у меня будет обновляться?
2)А чего плохого в том, что на сайте допустим у меня есть loader, который устанавливает и саму игру и updater?
3) А программа работает так, если при запуске игры есть обновление, то открывается форма, в которой вопрос, обновить или нет,
если нет, то просто открыть программу, а если обновить, то у меня как бы обновляется, но этот апдейтер у меня не скрывается, а
открывается заного.
4) Объясните, что не так.

Добавлено через 1 минуту
Updater должен быть другой программой. Заменить файл запущенной программы у Вас не получится. Нужно сначала убить процесс программы, а затем уже заменять файл. Т.е. алгоритм должен быть примерно такой:
1. В основной программе проверяем версию.
2. Если доступна новая версия, то запускаем апдейтер и выходим из программы.
3. Апдейтер скачивает новый файл и заменяет старую программу, затем запускает процесс основной программы и сам отключается.

я так и сделал, в другой программе у меня открывается он, но после переустановки он опять открывает эту программу
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
17.12.2017, 21:02
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
А чего плохого в том, что на сайте допустим у меня есть loader, который устанавливает и саму и updater?
А смысл то какой??? Если лоадер скачивает последнюю версию программы, то нафига нужен апдейтер??? Что он будет делать? Просто для вида лежать в папке?

Цитата Сообщение от Dimasta1488 Посмотреть сообщение
А программа работает так, если при запуске игры есть обновление, то открывается форма, в которой вопрос, обновить или нет,
если нет, то просто открыть программу, а если обновить, то у меня как бы обновляется, но этот апдейтер у меня не скрывается, а
открывается заного.
Да не так она у Вас работает! Вы для начала разберитесь со своим кодом... Вот возьмите и к каждой строчке напишите комментарий - что делает данная строка! Только не пишите то, что Вы хотите, чтобы она делала, а вдумайтесь как она работает и что она делает, а потом пишите. Уверен, что Вы поймете свою ошибку задолго до того как дойдете до последней строки кода!

Цитата Сообщение от Dimasta1488 Посмотреть сообщение
я так и сделал
Нет, Вы сделали абсолютно не так.
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
17.12.2017, 21:07  [ТС]
да, я сделал лаунчер для красоты, ради практики, т.к. я недавно занимаюсь программированием.
Но вы можете помочь с конкретной проблемой?
После того, как файлы обновятся, нужно что бы версия на игре поменялась
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
17.12.2017, 23:49
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
я сделал лаунчер для красоты, ради практики
Красота и практика - вещи нужные и полезные, но они ведь не должны идти вразрез с логикой! Надеюсь, это Вы и сами понимаете?

Цитата Сообщение от Dimasta1488 Посмотреть сообщение
Но вы можете помочь с конкретной проблемой?
Я и пытаюсь это сделать! Просто хочу, чтобы Вы своим умом дошли до решения задачи! Так будет значительно полезнее для Вас же!
Намекну:
1. Когда Вы проверяете текущую версию программы, как Вы думаете версию какой программы Вы проверяете?
2. Вы в лаунчере скачиваете зип-архив, а запускаете WindowsFormsApp1.exe... Как Вы думаете, запускается скачанный файл или нет?

Цитата Сообщение от Dimasta1488 Посмотреть сообщение
версия на игре поменялась
Версия указывается в настройках проекта еще до сборки этого проекта.

Добавлено через 2 часа 23 минуты
Dimasta1488, как успехи?
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
18.12.2017, 00:30  [ТС]
Зайдите посмотрите и скажите, плохо я сделал или нет.
Хотя бы визуально http://kracer.ru/

Добавлено через 1 минуту
А успехи таковы, я сделал автоматическое открытие обновления, если видит новую версию, то старые файлы удаляет, качает новый архив с файла и потом запускается программа
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
18.12.2017, 00:51
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
Зайдите посмотрите и скажите, плохо я сделал или нет.
Ну, в целом, неплохо! Вроде бы все (скачивание и установка) работает. Только, при установке, наверное, стоит спрашивать пользователя в какую папку следует установить программу, а не скидывать ее в корень диска. И, еще игра не работает. Попробовал 2 раза - какое бы число я не ввел, я все равно выиграл... Везет мне сегодня!
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
18.12.2017, 01:12  [ТС]
Это я ради теста поставил что бы 1 совпадение было, ради теста, у меня просто рейтинг связал с сервер, онлайн так сказать

Добавлено через 1 минуту
А вот я пытался устанавливать в паппку programm file 86, но пишет что нет доступа, не подскажите что можно сделать?

Добавлено через 5 минут
Попробуйте щас сыграть, я обновление запустил, и сделал что бы 3 числа отгадывать нужно было, хотя по правилам нужно 4, но это очень долго.
Вижу вы человек опытный, может вы дадите VK свой, что бы я мог если вдруг что, у вас там мог спросить.
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
18.12.2017, 01:25
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
я пытался устанавливать в паппку programm file 86, но пишет что нет доступа
У пользовательских программ нет прав доступа на запись в системные папки. Правильнее всего использовать для этого инсталлятор. Также можно запускать программу от имени администратора. Тогда возможность записи в Program Files будет.

Добавлено через 3 минуты
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
может вы дадите VK свой
Меня нет в соц. сетях.

Цитата Сообщение от Dimasta1488 Посмотреть сообщение
что бы я мог если вдруг что, у вас там мог спросить
Спрашивайте тут! На форуме также можно отправлять личные сообщения. Появляюсь я тут достаточно часто. Кроме того, помимо меня на форуме много людей, к тому же значительно более опытных, нежели я. Вероятность, что Вам ответят и, что немаловажно, ответят правильно, гораздо выше.
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
18.12.2017, 01:46  [ТС]
А как в ЛС писать? я не могу найти.

Добавлено через 12 минут
Цитата Сообщение от Shogun31337 Посмотреть сообщение
У пользовательских программ нет прав доступа на запись в системные папки. Правильнее всего использовать для этого инсталлятор. Также можно запускать программу от имени администратора. Тогда возможность записи в Program Files будет.
То есть если ПОЛЬЗОВАТЕЛЬ будет от Администратора запускать?
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
18.12.2017, 01:47
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
Попробуйте щас сыграть, я обновление запустил
1. Все таки лучше сделайте инсталлятор. Не очень удобно скачивать с сайта архив, распаковывать кучу файлов (причем еще и папку для этого предварительно нужно создать) и только потом запускать. С установщиком это будет значительно проще и удобнее для пользователя. Тем более, делается это достаточно просто. Даже не знакомым с подобными вещами людям разобраться в течение получаса не составит труда.
2. Не удобно, что после каждого хода нужно кликать в текстбокс, чтобы ввести число. После того как ход сделан устанавливайте фокус на этот текстбокс.
3. При нажатии на "помощь" вываливается куча окон... Зачем? Сделайте в самом окне помощи кнопку на окно с примером. Так будет удобнее для пользователя.
Вроде все... В остальном достаточно неплохо!
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
18.12.2017, 01:55
Цитата Сообщение от Dimasta1488 Посмотреть сообщение
А как в ЛС писать? я не могу найти.
В выпадающем меню:


Цитата Сообщение от Dimasta1488 Посмотреть сообщение
То есть если ПОЛЬЗОВАТЕЛЬ будет от Администратора запускать?
Ну да... А что тут такого удивительного? Если это не заблокировано администратором, у пользователей есть возможность запускать программы от имени администратора. Правда, может потребоваться ввод пароля администратора.

Кроме того, можно добавить в проект файл манифеста, в котором прописать что для запуска программы требуются права админа.
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
18.12.2017, 02:52  [ТС]
Shogun31337, 1) у меня такого нет.
2) инсталлятор это вот это?
3) ну использовать права администратора это пользователь должен быть умным, догадаться что если ничего не открывает, то нужно от Админа открывать.
4) а если сделать инсталлятор, то там же можно будет сделать что бы пользователь выбирал куда скачивать?
Миниатюры
Задваивается Updater   Задваивается Updater  
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
18.12.2017, 09:51  [ТС]
Shogun31337, у меня новая проблема, кажется у меня взломали базу данных, как от защить базу данных от взлома?
Миниатюры
Задваивается Updater  
0
16 / 10 / 4
Регистрация: 16.12.2017
Сообщений: 281
18.12.2017, 09:53  [ТС]
Shogun31337, Когда удаляю удаляю эти строки, опять они появлются
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.12.2017, 09:53
Помогаю со студенческими работами здесь

Создаю UPDATER, в program.cs, но выдает ошибку "файл занят другим приложением"
В файле program.cs, то есть перед запуском проги делаю проверку. Application.EnableVisualStyles(); ...

Не удалось открыть службу Skype Updater
при нажатии на кнопку происходит такая ошибка, в чем проблема и как исправить Вот проект

Небольшая наглость или просьба по updater
Здравствуйте - Вчера сидел весь день над Updater... Знаю принцеп как должно всё работать но у меня то исключение каке то вылезает то ещё на...

Задваивается Ртполе
Set rt = New NotesRichTextItem(Doc, "HTML") Call rt.Appendtext("0123456789") Call Doc.Save(True, False) в итоге полей HTML будет...

Задваивается вызов showSaveDialog
Доброго времени суток! Пишу приложение, содержащие ссылки на полезные сайты для клиентов, переход на которые осуществляется внутри...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru