Меня не интересуют какие-либо решения для автоматического обновления, такие как ClickOnce или MS Updater Block. Для тех, кто испытывает желание спросить, почему бы и нет: я уже использую их, и в них нет ничего плохого, я просто хотел бы узнать о любых эффективных альтернативах.
Я хотел бы опубликовать патчи = небольшие отличия, которые изменят существующие файлы развертывания с минимально возможной дельтой. Исправлять нужно не только код, но и файлы ресурсов. Исправление работающего кода может быть выполнено путем поддержки двух отдельных синхронизированных копий развертывания (никаких изменений на лету в работающем исполняемом файле не требуется).
Само приложение может быть развернуто xcopy (чтобы избежать автоматического исправления MSI измененных файлов или нарушения подписей ClickOnce).
Я хотел бы узнать, как обрабатывать разные версии патчей (например, выпущен патч, который исправляет одну ошибку, а затем другой патч, исправляющий другую ошибку (в том же файле) - у пользователей может быть любая их комбинация, и появляется третья patch - в текстовых файлах это может быть легко реализовать, но как насчет исполняемых файлов? (собственный код Win32 против .NET, есть ли разница?)
Если первая проблема слишком сложна для решения или неразрешима для исполняемых файлов, я хотел бы хотя бы узнать, есть ли решение, реализующее простое исправление с серийными версиями - для установки версии 5 у пользователя должны быть установлены все предыдущие версии, чтобы гарантировать обоснованность развертывания.
Патчи могут быть выпущены в виде загружаемых файлов с веб-сайта - функция автоматической установки исправлений непосредственно из работающего приложения не требуется.
Существуют ли какие-либо решения для этого?
ПРИМЕЧАНИЕ. Есть несколько вопросов по SO, которые могут показаться дубликатами, но ни один из них не дает хорошего ответа.
Это вопрос о платформе Windows, желательно .NET.
Пока что wyUpdate, кажется, лучше всего подходит для этой задачи. По-прежнему интересую альтернативы.