我们已经构建了一个.NET Windows ,安装在客户端PC上,以监视和上传来自这些PC机的数据(通过web服务)。我正在寻找一种方法,更新所有客户端PC上的windows服务集中-无需远程进入每一家商店。
这里有一些细节(尽管我认为这并不重要):
一些额外的信息
这似乎是开发人员需要多次解决的一个标准问题。如果有人有任何建议或可以建议一个他们使用的过程,这将真正帮助我们。
更新
我可以更改functionality
发布于 2011-02-03 21:39:15
如果您有web服务,则可以添加用于更新的方法。
创建一个小的更新安装程序或应用程序(您将在本地运行)。
然后在web服务中添加一个返回Stream或byte[]数组的方法。
在web服务的方法中,将二进制安装程序文件读入byte[]数组或流,并将其发送到客户端。
然后让客户端将该流保存到一个文件中,现在在客户端计算机上有了安装程序。
剩下要做的就是运行该进程并更新服务。
发布于 2011-02-03 21:43:13
如果修补程序是MSI包,则可以使用在AD服务器控制下将更新推送到同一网络中的计算机。更新将立即或在下一次启动时运行。
您可以自己推送包,但必须有某种传输机制在另一端监听,由具有足够智能和权限的程序控制,以便自动执行更新。
除非AD,否则这可能是您最好的选择:使用普通网络文件共享将更新推到客户端。客户端计算机必须在运行,但可以在欢迎屏幕上运行。然后,在Documents &User/All User/Start菜单/Startup文件夹中放置一个批处理文件,该文件夹将执行MSI的“罐装安装”(基本上告诉MSI使用默认安装参数执行静默安装)。在下一个用户登录时,批处理文件将运行,执行安装。MSI可能会在之后清理批处理文件。如果您可以远程访问客户端计算机的注册表(我对此非常怀疑),您可以将批处理文件放在某个临时目录中,并将对其的引用放在RunOnce注册表文件夹中。
一次浏览这个rigamarole可能会教您构造这样的应用程序,通过一个已知的web服务来检查和下载它们自己的更新,或者设置它们使用ClickOnce部署(这会使安装目录变得混乱,但更新部署变得简单得多)。
https://stackoverflow.com/questions/4891976
复制相似问题