代码之家  ›  专栏  ›  技术社区  ›  Arsen Mkrtchyan

部署和自动化更新

  •  0
  • Arsen Mkrtchyan  · 技术社区  · 17 年前



    调查点击一次的限制,感谢亲爱的回复者,我发现点击一次对我们的应用程序来说不是问题,还有其他机制吗?用web服务做到这一点的最佳实践是什么。.?
    多谢

    3 回复  |  直到 17 年前
        1
  •  2
  •   codeConcussion    17 年前

    ClickOnce是一个很好的工具。然而,在决定之前,你应该知道它有一些局限性。

    • 它不允许您选择安装应用程序的位置。它将它们安装在用户配置文件下的一个模糊位置。是的,这意味着ClickOnce应用程序是按照 用户 .
    • 它只是让用户机器上的文件与服务器上的文件保持同步,仅此而已。您不能安装第三方msi文件、注册dll、将程序集安装到GAC等。

    在尝试时,我只会从Visual Studio发布您的应用程序并使用自证书。如果您决定使用ClickOnce,您可能希望使用MSBuild或MageUI来生成部署,并且可能希望考虑从证书颁发机构(如Verisign)购买代码签名证书。

    编辑
    只是想回应@Richard Dunlap的评论。他是对的,您可以在Visual Studio中指定先决条件,它将为您构建一个引导程序。引导程序使用户无需单独下载预配置文件,按正确顺序运行它们等。

    ,这在很大程度上只是VS提供的一个功能,在IMO中,它与ClickOnce是分开的。ClickOnce仅限于确保GAC中存在程序集,如果不存在,则使安装失败。引导程序和ClickOnce安装之间真的没有连接。你几乎必须告诉用户,“如果你没有产品x、y或z,请在尝试安装我的应用程序之前运行这个引导程序”。ClickOnce无法检查某些第三方COM产品并强制用户在运行应用程序之前安装它。

        2
  •  1
  •   Richard Dunlap    17 年前

    1. 如果将ClickOnce设置为在启动后检查更新,则可以直接进入应用程序,但只有在下次启动应用程序时才会部署更新;当然,您可以通知用户更新版本现在可用,并提供重新启动选项。如果用户可以最后一次运行旧版本,则效果很好。

    2. 如果这两个选项都会给您带来问题,那么您可以使用API进行编程更新。这就是我们选择做的事情——由于我们的ClickOnce应用程序是一个与web服务通信的表示层客户端,因此我们的客户最好始终运行最新版本的软件。然而,我们希望在应用程序检查更新时利用这段时间做一些其他家务(比如检查与web服务的连接),我们希望用户在等待时看到我们的徽标和公司名称。 :-)

    足以让你开始吗?

        3
  •  1
  •   pete the pagan-gerbil    15 年前

    这个博客(http://coffeedrivendevelopment.blogspot.com/2008/09/clickonce-deployment-or-not.html)描述了他不使用ClickOnce的决定,以及编写自己的自我更新程序的简单机制。他使用源代码管理来检查新版本,但理论上你可以使用其他版本指示器(文本文件、数据库、Web服务调用等)来检查发布新版本的位置。

    推荐文章