0

我编写了一个客户端-服务器应用程序。有一台计算机运行服务器应用程序,而多台计算机运行客户端应用程序。

到目前为止,每次我的应用程序有新版本/补丁时,我首先通过 VNC 将二进制文件复制到服务器应用程序,然后启动一个脚本,在客户端执行一个脚本,即将二进制文件复制到本地文件夹(网络执行不起作用!)...然后在每台客户端计算机上启动客户端应用程序...

那么有什么好的机会可以替代我的旧方法呢?

我尝试创建一个通过 http/ftp 更新的单击一次应用程序...但没有成功^^

4

3 回答 3

4

我们使用一个名为 Presto 的开源应用程序:http: //presto.codeplex.com/

完成初始设置后,每次部署只需两个手动步骤:
1. 将二进制文件复制到网络位置
2. 按 Presto 中的按钮启动新部署

Presto 的最大优势在于您可以使用它来初始设置您的应用程序和服务器,并为每个环境指定适当的配置设置。启动部署后,安装会自动进行,并将正确的值写入配置文件(QA 获取 QA 值,生产获取生产值,等等)。

使用 Presto,您可以停止服务、删除文件夹、复制新的二进制文件、更新配置文件等……而且这一切都是自动化的。

于 2012-06-14T19:23:06.303 回答
1

这就是 Web 前端如此受欢迎的原因 :)

尝试实现良好的自动更新机制和版本控制。客户端具有硬编码的服务器版本,第一次调用所有调用服务器都包含自己的版本。当版本不匹配时 - 自动更新时间。在服务器上 - 它只是下载客户端应用程序安装的端点,这是跨版本的标准。

所以客户端有外部更新程序,在客户端知道新版本存在后启动。更新程序过程的目标是下载新的安装/包,或者运行安装更新/重新安装客户端,或者解压缩并复制新的/修改的文件。

不使用某些外部库时。过程看起来像这样。

单击一次是另一种方法,也应该有效。

类似的问题在这里

自动更新 .NET 应用程序

无论如何,您的客户端应用程序可能需要一个好的安装程序。当您有安装程序时,只需执行简单的下载器/更新器和服务版本控制。

于 2012-06-14T19:24:06.943 回答
0

用更少的代码做到这一点并不难。

  1. 在您的应用程序中设置 http 服务。
  2. 创建一个列出当前版本的文件。
  3. 在您的应用程序中设置 ftp 服务以提供新的二进制文件。
  4. 将 Updater.exe 应用程序添加到客户端,这将通过 http 检查新更新并通过 ftp 下载新版本。还应该制作一个客户端版本文件。

因此,您只需再执行一次旧式方法即可完成!现在我不知道客户端应用程序是否可以运行服务器,如果是这样,我建议将服务(http、ftp)与服务器应用程序分开。

于 2012-06-14T19:39:57.507 回答