Mình hiểu câu hỏi của bạn theo 2 hướng:
1. Khi có bản update mới, bạn sẽ hiện messagebox thông báo. Sau đó, user nếu muốn update, bắt buộc phải down xuống, sau đó install lại. Cách này áp dụng cho các app có dung lượng nhẹ, nhỏ gọn. Kiểu như Firefox, Maxthon ...
2. Thế nhưng khi app của bạn lên đến cả trăm mb, mà bạn lại bắt user làm như cách 1 thì coi như soft của bạn đi đời. Cách 2 đó là tự động update engine. Nếu theo phương pháp này thì code của bạn phải hoàn toàn hướng đối tượng để có độ flexible cao. Bạn để các module theo bạn nghĩ là cần phải thường xuyên nâng cấp trong 1 dll nào đó, hoặc là 1 file nào đó (không được nhúng hết vào file exe). Sau đó khi update bạn chỉ cần cho user download file cần update về, chép đè lên là oki (ko phải biên dịch lại). Bạn có thể dễ dàng nhận ra kiểu làm việc này của các chương trình antivirus, antispyware, ...
Bạn tham khảo link:
Thân.