Хорошо, это сообщение помечено мета для ответов, и я собираюсь взвесить это.
xdelta - это бинарная разностная программа, которая вместо предоставления вам полного изображения дает вам только то, что изменилось и где. Пример текстового различия будет иметь знаки + и - перед строками, показывающими, что они были добавлены или удалены в новой версии.
Существует два способа обновить двоичный образ: заменить его с помощью собственной программы или заменить его с помощью какой-либо формы управления пакетами. Например, системы Linux используют rpm и т. Д. Для отправки обновлений пакетов. В среде Windows ваши возможности ограничены тем, что установлено, если вы не находитесь в корпоративной сети. Если да, попробуйте WSUS и MSI. Это облегчит вам жизнь, или ClickOnce, как кто-то упоминал.
Однако, если вы этого не сделаете, вам нужно помнить следующее:
- Вы должны быть администратором, чтобы обновлять что-либо в определенных папках, как говорили другие. Я бы настоятельно рекомендовал бы вам принять это поведение.
- Если пользователь является администратором, вы можете предложить проверить наличие обновлений. Затем вы можете сделать одну из двух вещей. Вы можете загрузить совершенно новую версию своего приложения и записать ее поверх изображения на жестком диске (т.е. файл - помните, изображения загружаются в память, чтобы вы могли перезаписать свой собственный файл программы). Затем вам нужно сообщить пользователю, что обновление прошло успешно, и перезагрузить программу, поскольку новый образ будет другим.
- Или вы можете применить diff, если пропускная способность является проблемой. Вероятно, не в вашем случае, но вам нужно будет узнать из различий между клиентской программой две версии, чтобы сервер обновлений дал вам правильный патч. В противном случае, различие может не получиться.
Я не думаю, что для ваших целей xdelta все равно даст вам большую выгоду. Просто замените все изображение.
Редактировать Если пользователь вообще не должен запрашивать, просто перезагрузите приложение. Однако я настоятельно рекомендую информировать пользователя, с которым вы разговариваете в его сети, и попросить разрешения сделать это / включить режим ручного обновления, иначе такие люди, как я, заблокируют его.