Просто как замечание: проверку на изменение версии лучше делать по контрольным суммам.
Просто "лайфхак": пишем отдельную программу, которая скачивает нужный файл. при необходимости обновиться, программа "распаковывается из ресурсов\скачивается с сервера". закрывает лоадер(либо лоадер сам закрывается при запуске апдейтера), апдейтер скачивает обновленный файл лоадера, заменяя старый. затем запускает вновь скаченный лоадер и сам закрывается при этом самоудаляясь(если нужно).
Слов много, но система довольно полезная и удобная, если правильно реализовать все))