.NET简单应用程序更新机制

时间:2009-09-03 11:01:30

标签: .net deployment visual-studio-2005 installer windows-installer

环境:

  • .NET
  • C#
  • Visual Studio 2005
  • 某些第三方组件
  • 用于.msi构建的
  • .vdproj文件(在Visual Studio 2005中安装项目) - 而非“ClickOnce部署”

问题

我正处于项目阶段,一天中项目有几处更新。由于每次更改都很小(最多两个程序集),因此用户可以方便地使用某种快速无忧的自动更新。

命题

我想做一个简单的系统,将我的应用程序文件存储在我的服务器上的某个地方,以及一些将用哈希列出它们的XML文件。桌面应用程序将读取XML,比较哈希值,下载所需文件,重新启动应用程序,用户将获得新版本,甚至不会注意到它。

所以我的想法更进一步......

客户端申请:简单,一两天的工作。考虑:

  • 必须注意将文件写入用户程序目录的权限(如果我不能,我实在很无奈)
  • 必须启动更新程序进程以下载和替换文件并重新启动原始应用程序
  • 首次运行时必须使用哈希创建一个本地XML文件,为此我需要可以更改的已部署文件的本地列表(因为它们都不在本地应用程序文件夹中)

服务器端很简单,但也有一些注意事项:

  • 包含当前版本说明,文件列表和散列的根文件
  • 手动将文件上传到服务器,为散列文件创建工具

是否有一些工具遵循我的思路来做到这一点而没有太多的麻烦?

2 个答案:

答案 0 :(得分:4)

您所描述的内容听起来很像 ClickOnce 。是的:我注意到您写的是应用程序是通过MSI安装的,这很好。

ClickOnce不仅仅是初始安装。有许多选项,您can set it up so that it checks for updates even if the application is already running,如果声明性方法不够灵活,您还可以使用API​​。

答案 1 :(得分:1)