我有一个非常复杂的项目,但是每周都会更改用户界面。
有许多(> 20)用户界面(它们是相同的exe,在不同的PC上运行并通过TCP与服务器通信),以及3个大型服务器收集,控制,分析数据。一切都适用于系统。我现在的问题是GUI更新。当我在GUI上更改某些内容时,我必须将新的.EXE分发给客户端(> 20),因为我无权访问这些用户的计算机,有时它们没有连接到互联网。
我在想的是实现了LabVIEW的网络基础知识。因此,用户界面实际位于服务器上(我有物理访问权限)。用户有.EXE正在执行以下操作:
因此,仅在服务器上更改UI VI我到处更新UI。
问题1 :您有这样的经历,还有其他解决方案吗?
问题2 :这样做有什么好方法吗?通过VI服务器调用LabVIEW远程VI可远程运行VI,但在服务器上运行:)。我需要一种在本地下载和运行它的方法。
PS。我知道使用FTP,WebDAV下载VI并且只是异步调用它。但我正在寻找一个更好的解决方案。
谢谢你, Khachik
答案 0 :(得分:1)
我想不出比动态加载UI VI更好的解决方案。
但是,不是自己编写代码来下载和安装每次运行的更新代码,而是利用您的版本控制系统来实现这一目标呢?用户通过运行小型加载程序(它甚至可以是批处理文件或shell脚本)来启动客户端软件,该程序执行更新,将任何更改从服务器上托管的主存储库拉到本地存储库。然后它启动主可执行文件,动态加载最新版本的UI代码。
每个用户PC只需要安装和配置VCS的命令行客户端 - 或者您可以embed git,例如在您的加载器应用程序中,如果使用git或Mercurial,那么您的'master '存储库只能是网络文件共享而不是实际的服务器。
这不适合广泛部署的“生产标准”应用程序,但听起来好像您的环境不一定是一个完全牢不可破且简单易用的实现。
沿着相同行的其他选项可能是使用rsync或Microsoft SyncToy等工具。
答案 1 :(得分:0)
异步调用下载的VI对我来说也不好听。但是如何构建一个从服务器下载另一个EXE文件(更新的UI)并运行它的EXE文件呢?它就像一个自动更新程序,因为它们在今天的许多软件和游戏中使用。据我所知,没有很好的方法可以在本地运行远程用户界面#34;这样(如果有的话,通过下载和调用VI,它们的工作方式相同)。当然,除非您使用网页构建UI。