Я думаю, что «языковая независимость» будет здесь ограничивающим фактором. Приложения имеют так много форм и размеров, что не существует единого решения для всех. Я реализовал несколько автообновлений на нескольких языках, и никакие два не были похожи.
Самая общая философия заключается в том, что приложение проверяет с некоторым домашним местоположением (веб-адрес, веб-запрос, местоположение корпоративной сети и т. Д.), Чтобы либо спросить, является ли его версия текущей, либо спросить, какая самая последняя версия. Если ответ требует обновления, этот процесс будет отличаться для каждой ситуации.
Популярной альтернативой является приглашение домашнего местоположения для запуска сценария при запуске приложения. Сценарий может проверять версию, загружать обновления при необходимости и запрашивать отзывы об использовании, например.
Возможно, мы поможем вам лучше, если вы сузите параметры.
ОБНОВЛЕНИЕ: подход к «исправлению» также зависит от характера приложения, и здесь очень большое разнообразие. Например, если у вас есть один исполняемый файл, то, вероятно, наиболее целесообразно заменить исполняемый файл. Если в вашем приложении много файлов, вы должны искать способы минимизировать количество заменяемых файлов. Если ваше приложение сильно настроено или параметризовано, вы должны стремиться минимизировать усилия по адаптации. Если ваше приложение использует интерпретированный код (например, приложение Excel VBA или приложение MS Access MDB), вы можете заменить части кода. В приложении Java вам может понадобиться только заменить файл JAR или даже подмножество содержимого JAR. Вам также потребуется способ узнать текущую версию клиента и соответствующим образом обновить ее. Я мог бы продолжать и продолжать, но я надеюсь, что вы видите мою точку зрения о разнообразии. Это один из тех случаев, когда лучший ответ обычно начинается с «Ну, это зависит ...!» Вот почему так много ответов включают «Пожалуйста, сузьте параметры».