企业环境中的自动更新(C#)
我有一个安装在公司环境中的三层应用程序。每次服务器版本更新时,所有客户端也必须更新。目前,我提供了一个通过Active Directory自动部署的MSI包,但是我的客户(大多每个客户有20-300个用户)似乎不喜欢MSI解决方案,因为它是企业环境中的自动更新(C#),c#,.net,auto-update,C#,.net,Auto Update,我有一个安装在公司环境中的三层应用程序。每次服务器版本更新时,所有客户端也必须更新。目前,我提供了一个通过Active Directory自动部署的MSI包,但是我的客户(大多每个客户有20-300个用户)似乎不喜欢MSI解决方案,因为它是 运行起来很复杂(很少了解Active Directory) 当检测到新版本时,服务器无法触发更新过程 客户不能同时安装多个版本的客户端(如2.3和2.4)与不同的服务器通话 更新过程本身并不总是像预期的那样工作(有时在几个小时后会有非常奇怪的行为自我修复)
- 运行起来很复杂(很少了解Active Directory)李>
- 当检测到新版本时,服务器无法触发更新过程李>
- 客户不能同时安装多个版本的客户端(如2.3和2.4)与不同的服务器通话李>
- 更新过程本身并不总是像预期的那样工作(有时在几个小时后会有非常奇怪的行为自我修复)
您知道一种“只起作用”的更新方法吗?您可以复制ClickOnce的功能,只需根据您的需要进行调整即可
我希望这会有所帮助。很难为您提供准确的答案,因为有关客户端安装程序的关键信息并不明确。您是否将客户端文件安装到程序文件中?当用户受到限制时,您可能会遇到问题 您不认为本地应用程序数据是部署应用程序的文件夹,但Google是这样做的。它的Chrome浏览器就是这样安装在Windows上的,它的自动更新过程甚至是不可察觉的(这听起来很可怕)。那么,为什么不为受限用户将应用程序部署到此文件夹中呢?你可以在这里找到更多关于Chrome安装程序的信息
如果您不想给用户太多的权限,可以编写Windows服务,该服务将在每台计算机上以具有适当权限的帐户运行,并可以更新您的应用程序,当新版本可用时。我写了一个开源解决方案来满足我们对WinForms和WPF应用程序的特定需求。总体思路是以尽可能低的开销获得最大的灵活性。它应该为您描述的所有内容提供所需的所有灵活性 因此,集成非常简单,库可以为您完成几乎所有的事情,包括同步操作。它也是高度灵活的,可以让你决定执行什么任务,在什么条件下执行——你可以制定规则(或者使用一些已经存在的规则)。最后,同样重要的是支持任何更新源(web、BitTorrent等)和任何提要格式——任何未实现的内容都可以自己编写 还支持冷更新(需要重新启动应用程序),并自动完成,除非为任务指定了“热插拔” 这可以归结为一个DLL,大小小于70kb 详情请浏览 代码位于(根据Apache 2.0许可证许可)
我计划在我有更多时间的时候进一步扩展它,但老实说,无论它目前不支持什么,您都应该能够自己快速增强它。请澄清您在ClickOnce中遇到的错误以及在什么步骤中遇到的错误(因为这是解决您问题的好方法,也许我们可以修复)。ClickOnce为我们提供了帮助。至于“神秘”的错误消息。我只在我的应用程序被mage错误配置时见过这些。