【问题标题】:Semi ClickOnce autoupdateSemi ClickOnce 自动更新
【发布时间】:2010-10-29 08:55:15
【问题描述】:

我想在启用自动更新的情况下轻松部署应用程序。但是,出于各种目的,我不得不使用 MSI 安装程序。我们将部署一个 Windows 窗体应用程序和一组 Windows 服务。

我真的很喜欢您可以单击发布选项卡中的几个按钮并将其全部部署到具有 .application 和 .manifest 文件的 Web 服务器。所以,我现在可以发布更改,但不能自动获取它们。我正在尝试自己编写一个自动下载器。

  1. 比较 .application 文件(本地和远程),
  2. 读取
  3. 对于每个标签,例如 V1FBG6P353V5CT4JofOCwe0opeA=)
  4. 如果哈希值不同,请下载相应的文件,将 .deploy 扩展名剥离到临时路径

现在,对于Windows Forms,我可以编写一些 AppStarter 来启动主应用程序并在检测到更新时关闭主应用程序,覆盖所有下载的 EXE 文件和 DLL 文件并重新启动应用程序。

对于 Windows 服务,我想等到主循环完成(由计时器触发的循环),然后停止计时器并应用更新。怎么样?

这个非常通用的算法一定有我不知道的陷阱(我的直觉告诉我),因此我发布了这个问题。什么时候会出错? 您是否认为 XML 结构会随着时间保持不变(至少对于现有标签的精确度而言)?

我也有downloadeded the .NET Application Updater。只是我必须自己形成 XML 文件,并且不确定它是否允许使用 Windows 服务。

【问题讨论】:

    标签: clickonce


    【解决方案1】:

    我想,我遇到了类似的问题。我部署了一个带有两个窗口屏幕的 Windows 服务。一屏控制Windows服务的启动/停止和安装/卸载。另一个用于使用 ClickOnce 的部署。

    我在部署项目中添加了一个 Windows 服务和一个配置屏幕作为内容文件。当客户端部署 ClickOnce 项目时,所有这些文件都将部署在机器上。由于 ClickOnce 无法部署 Windows 服务,因此用户需要调用配置屏幕并通过将 Windows 服务复制到默认文件夹来安装/启动 Windows 服务。

    必须将 Windows 服务复制到另一个文件夹,因为 Clickonce 会更改每个版本的文件夹。稍后将安排部署的应用程序检查更新。当最新版本可用时,它会提示 Windows 服务停止并自行更新并重新启动 Windows 服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      相关资源
      最近更新 更多