我们有一个可执行文件,被networking上的50多台客户机使用并定期升级。 将可执行文件放在networking共享上并让客户机通过桌面上的快捷方式从那里运行它是否可以接受? 这样,当我们升级.exe,我们可以简单地用一个新的文件replace一个文件,所有的客户端将访问新的。 一个缓慢或不稳定的networking如何处理这个问题? 如果这是不可接受的,那么最好的方法是保持所有的客户端更新最新的.exe文件?
可以有一个login脚本来检查程序(类似于md5),如果它不同,那么它从中央服务器下载应用程序,并将其放在用户的桌面上。
人们使用这种方法已经有20年了。 早期的Netware时代就是这样做的。 有了现代化的networking,50个客户就什么都不是。 我假设你运行至less100baseT。
如果您的networking不可靠,我build议修复它,而不是做一些workarround使.exe文件访问工作。 当然,这是假定.exe是合理大小的。
就个人而言,我宁愿看到它从客户端机器运行。 加载应用程序并不是networking上需要的,如果它不是必需的。
+1引导或login脚本的想法,检查更新的版本。 我以前用过这个效果很好。 本地caching
这听起来像这是一个build在家里的EXE?
如果是这样,并且您正在使用Visual Studio 2005或更高版本,则可能需要查看ClickOnce部署选项。
ClickOnce是一种部署技术,使您能够创build自我更新的基于Windows的应用程序,只需最less的用户交互即可安装和运行应用程序。 ClickOnce部署克服了部署中的三个主要问题:
更新应用程序时遇到困难。 使用Microsoft Windows Installer部署时,每当应用程序更新时,用户都必须重新安装整个应用程序; 使用ClickOnce部署,您可以自动提供更新。 只有已经更改的应用程序的那些部分被下载,然后从新的并排文件夹重新安装完整的,更新的应用程序。
影响用户的电脑。 使用Windows安装程序部署时,应用程序通常依赖于共享组件,并存在版本冲突的可能性; 通过ClickOnce部署,每个应用程序都是独立的,不能干扰其他应用程序。
安全权限。 Windows Installer部署需要pipe理权限,并且只允许有限的用户安装; ClickOnce部署使非pipe理用户能够安装和授予应用程序必需的代码访问安全权限。
控制部署应用程序以结束工作站始终是首选。 如果你失去了驱动器,或者如果有一些用户删除exe文件,这个应用程序将会被所有的用户取消,而且我猜测,因为有50多个用户每天都在运行这个应用程序。
另外,当你升级它时,如果你想试用一个新版本,你将不得不部署它,或者以某种方式将一定数量的用户redirect到共享上的新文件。 依靠最终用户做正确的事情不是你可以信赖的。
部署一个单一的exe非常简单,但我会毫不犹豫地通过login脚本。 启动脚本或使用SCCM或SMS或Altiris等工具更好。