clickonce,客户特定的更新URL - 如何管理

时间:2016-11-18 12:58:43

标签: clickonce

我有一个clickonce部署问题/问题,我需要帮助弄清楚如何解决。我已经看过很多关于已经在这里问过的clickonce的问题,但没有找到解决问题的方法。

情况如下:

在工作中,我们即将从非基于.net的应用程序将应用程序重新开发为基于.net的应用程序,作为使用clickonce进行安装和更新的WPF应用程序。这是一项无法改变的管理决策,因此建议采取其他措施无助于解决问题。

此时我们有100多个客户/安装,每个客户/安装都有我们当前应用程序的多个用户,并且需要一种简单的方法来控制何时为每个客户提供更新,此时问题就出现了。我/我们对clickonce的理解是,安装和更新URL'嵌入在已签名的清单文件中,因此我需要一个清单文件和程序文件的副本。客户为了控制每个客户何时更新系统。

在我看来,我想要一个像这样的解决方案:

我为应用程序/产品创建了一个站点,例如myproductsite.com上有一个像myproductsite.com/application/install这样的网址,用于初始安装,不考虑客户是谁,还有像myproductsite.com/application/update/somecustomerid这样的URL用于更新目的。每个客户都有自己的更新文件夹/ URL,由somecustomerid标识,只要有特定客户的更新可用,就会发布更新。然后,我将创建一个管理工具,以简化在客户特定文件夹/ URL中提供更新的过程。

为了实现这一点,由于URL的某个客户端部分,更新的URL必须特定于每个客户,并且我的理解是这不能从例如。 app.config文件在程序搜索更新时合并到URL中。我希望有人知道不然。

如果我是对的,有没有办法将清单文件作为批处理,这样管理工具可以制作这些清单文件和/或每当有一个或多个更新可用时将它们分发到somecustomerid文件夹客户?

我的理解是,一旦在客户进行安装,在我的最后更改安装和更新URL是非常麻烦的,如果不是几乎不可能的话,仍然确保clickonce可以工作。

我可能完全误解了clickonce的概念,因此提出了非常愚蠢的问题,但我仍然需要更新一些客户而不更新其他客户,我仍然无法弄清楚如何实施/管理问题。

其他可能有类似的问题。我不能成为第一个需要独立更新客户的人,所以请分享你的经验,做与不做。

此致 的Morten

1 个答案:

答案 0 :(得分:0)

默认情况下,ClickOnce假定所有客户将从同一位置安装应用程序,并会同时获得建议的更新。我不知道有任何方法可以使用默认方式更改此方法(除了为每个客户创建不同的部署)。

修改清单和路径的问题是,出于安全原因,构成部署的XML文件已签名,因此在创建部署后不能更改它们而不破坏其签名,从而破坏ClickOnce安装/更新过程

但是,您可以尝试编写ClickOnce部署过程的脚本。 I found this link(我没有阅读所有内容),它描述了如何在Visual Studio外部构建ClickOnce部署。也许这有助于您为每个客户进行部署,尤其是因为有一节关于InstallURL,SupportUrl,PublishURL和UpdateURL?