.net程序中的自我更新?

我正在寻找.net程序中自我更新的最佳机制!
解决方案应涵盖此主题:
1)服务器 – 客户端程序
2)当新的更新发布后,在服务器程序上安装后,所有客户端程序必须根据服务器版本自行更新。(不需要服务器自动更新)
3)完全更新:例如,如果版本3上的服务器和上次更新包版本为5,则更新包必须包含任何旧包。

你有没有看过Click Once部署 ?

您可以使用此组件执行此操作: .NET客户端应用程序:.NET应用程序更新程序组件