Лучший способ обновления приложения - PullRequest
0 голосов
/ 11 июля 2010

Я занимаюсь разработкой игры с технологией WPF. Я хочу добавлять новые функции в игру каждые три дня. Размер обновления важен для меня. моей игре нужен интернет для начала. как онлайн игра. Другая проблема - размер обновлений. самое важное примечание: Мне нужно, чтобы обновление программы не нуждалось в остановке. что вы предлагаете? Является ли clickonce хорошим вариантом? спасибо за внимание дайте мне руководство, пожалуйста.

Ответы [ 2 ]

1 голос
/ 12 июля 2010

Развертывание ClickOnce выполняет постепенные обновления. При развертывании обновления, если отметка даты / времени и хэш файла совпадают с последней версией, ClickOnce копирует их из кэшированной версии в новую версию, а не копирует их через Интернет.

Если у вас есть несколько проектов в одном решении, ClickOnce будет развертывать каждый из них каждый раз, потому что они перекомпилируются и перефразируются при создании решения. НО, если у вас есть проекты, которые, как вы думаете, сильно не изменятся, вы можете поместить их в отдельное решение, собрать их и включить dll в основное приложение. Тогда он не будет перестраиваться и перефразироваться каждый раз, когда вы публикуете, и больше не будет копироваться через Интернет.

Что касается запуска из Интернета, вы можете указать, что приложение будет запускаться только онлайн, что требует, чтобы пользователь мог подключаться к манифесту deploymnet (файл .application) и иметь возможность проверять наличие обновлений каждый раз, когда он запускает его.

Обратите внимание, что большинство людей устанавливают ClickOnce для проверки обновлений и устанавливают их перед запуском, что гарантирует, что клиент всегда использует самую последнюю версию.

Я не уверен, что это значит: «Мне нужно обновить программу без остановки».

Если вы хотите обновить приложение ClickOnce, не заставляя пользователя закрывать его, вы можете использовать API-интерфейсы программирования, чтобы проверить наличие обновлений и установить их, но вам придется перезапустить приложение, чтобы установить обновления. (Application.Restart ()).

1 голос
/ 11 июля 2010

Насколько я знаю, clickonce не будет делать то, что вы хотите.

Один из вариантов - взять исходник для приложения сравнения файлов и модифицировать его для сравнения байтов ваших двоичных файлов (V1.0 и V1.1 для аргументов).

Затем вы создадите файл инструкций, в котором объясняется, как преобразовать V1.0 в V1.1 с помощью вывода этой дифференциальной программы.

Затем вам нужно будет написать приложение для обновления, которое принимает инструкции по обновлению и превращает V1.0 в V1.1 вместе с ними.

Таким образом, по проводам были отправлены только измененные байты, а не вся программа

Посмотрите на это: http://www.codeproject.com/KB/files/LPTextFileDiff.aspx

Надеюсь, это поможет: -)

...