【发布时间】:2011-12-20 13:43:15
【问题描述】:
如何制作一个简单的自动更新客户端(windows服务)? 注意:我正在使用 .NET 2.0 客户端和 .NET 4.0 IIS Web 服务器。
我认为我会有一个主启动 .exe(步骤 1 和 1.5)和一个单独的类 (DLL),以便在更新过程之后调用一个单独的类 (DLL) 以完成其余工作,以便可以覆盖“worker”DLL更新过程。
这是制作自动更新客户端的最佳方式吗? 以下所有步骤在每个计时器间隔和 Windows 服务/程序启动时运行。
- 关闭然后打开 Web 服务连接 1.5 如果 Web 服务版本在事务中更新,则自动更新客户端(下载压缩的二进制文件以更新客户端程序文件夹 - 通常只是“worker”dll 文件。)
- 登录到 Web 方法以获取 SecurityToken 以用于将来的 Web 方法调用
- 上传本地 MessageLog(最好是在所有进程之前和之后)
- 获取客户端设置
- 做主要工作流程(工人阶级)
- 上传本地消息日志
- 注销网络方法
- 关闭网络服务连接
其他说明:
一个。仅当该安装具有允许其接收更新的 Web 服务器设置并且其应用版本需要更新(比较版本号)时,客户端才会升级。
b.一切都通过 SSL。
c。除了要求每个 Web 方法的安全令牌(安全令牌在 60 分钟或更短时间后过期)之外,我还将保护整个 Web 服务。
d。客户端配置文件经过高度加密(整个 Web 服务和特定安装的登录凭据)
e。我可能应该下载应用更新二进制文件的 MD5 和,以确保我有正确的文件要安装。 .NET 是否以标准方式为 Windows 和在 Mac 的 Mono 框架上实现 MD5?
f。此自定义程序并非在网络上免费提供,但仅适用于某些客户。
【问题讨论】:
-
你为什么认为这需要是一个 Windows 服务?
-
@Cody。我的客户端程序恰好是 Windows 服务 - 这是唯一的原因。我还将在 Windows 窗体上使用它进行测试。
标签: c# auto-update