【问题标题】:.NET simple application update mechanism.NET 简单的应用程序更新机制
【发布时间】:2009-09-03 11:01:30
【问题描述】:

环境:

  • .NET
  • C#
  • Visual Studio 2005 和
  • 一些第三方组件
  • .vdproj 文件(在 Visual Studio 2005 中设置项目)用于构建 .msi - 而不是“ClickOnce 部署”

问题

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

提议

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

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

它的客户端应用程序:简单,一两天的工作。注意事项:

  • 必须照顾权限才能将文件写入用户程序目录(实际上如果我做不到我很无奈)
  • 必须启动更新程序进程,该进程将下载和替换文件并重新启动原始应用程序
  • 必须在第一次运行时创建一个带有哈希值的本地 XML 文件,为此我需要可以更改的已部署文件的本地列表(因为它们不只是在本地应用程序文件夹中)

服务器端微不足道,但也有一些注意事项:

  • 具有当前版本描述、文件列表和哈希的根文件
  • 手动上传文件到服务器,创建哈希文件工具

是否有一些工具可以按照我的思路来做到这一点而不会带来太多麻烦?

【问题讨论】:

  • 嗯,下面提到的每个选项似乎都有问题:COM文件根本没有提到,我还没有找到任何指定文件目标目录的选项。好奇...

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


【解决方案1】:

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

ClickOnce 不仅仅是初始安装。有很多选择,你 can set it up so that it checks for updates even if the application is already running,如果声明式方法对你来说不够灵活,你可以使用 API。

【讨论】:

  • 同意:听起来 mosmondor 正在重写 clickonce。是否有您依赖的 MSI 功能无法在 clickonce 中复制?
  • 我对 ClickOnce 有点谨慎,但我不得不说它像宣传的那样工作,而且设置起来非常简单。
  • 有些东西阻止了我使用 ClickOnce。我有一种感觉,这是一个好主意,但没有经过打磨,会像一些 M$ 发明一样被放弃......
  • @mosmondor:我不知道你说的是不是真的,但即使 if 是真的,.NET 框架中的“放弃”意味着它不会进一步发展 - 仍然会有 10 年的支持。我不知道你有什么能力,但我很确定 ClickOnce 比我在一两周内单独开发的任何东西都更好、更强大:)
  • @mark: 任何开发的代码都值得使用。多年的发展教会了我。即使代码来自微软 :)
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多