Eu crio um atualizador (exe) que fica na mesma pasta do sistema. No BD crio um campo com o número da versão. O sistema é sempre atualizado no servidor. Quando o sistema é executado, ele verifica se a versão que está sendo executada é mais recente que a versão constante no BD e atualiza o campo. Se a versão que está sendo executada é menor que a versão que consta no BD, então é chamada o atualizador, o programa principal é fechado, e o exe principal é copiado do servidor para o cliente.
[As partes desta mensagem que não continham texto foram removidas]