Если вы хотите написать свое собственное решение, то у вас должна быть отдельная программа, которая будет выполнять обновление, поскольку вы не можете обновить какие-либо библиотеки dll, которые уже используются, поэтому эта новая программа не должна делить какие-либо библиотеки dll с реальной программой. .
Я думаю, что наилучшим подходом было бы установить http-соединение, если вы загружаете обновления и отправляете свой номер версии, и сервер определяет, есть ли обновление, в зависимости от особенностей, таких как, является ли обновление для 64-битной или 32-битной ОС, например.
Но, позвольте пользователю выбрать, как работает обновление, я думаю, что решение Google Chrome плохое, так как оно обновляется тихо, но даже не сообщает вам, что было обновление. Я предпочитаю, чтобы я мог выбрать автоматическое обновление или просто автоматическую загрузку, чтобы я мог выбрать, когда делать обновление.