【问题标题】:Move ClickOnce repository without reinstall in client machines. Is it possible?无需在客户端计算机中重新安装即可移动 ClickOnce 存储库。是否可以?
【发布时间】:2009-04-01 14:29:13
【问题描述】:

我有一个 C# 应用程序 (WinForms) (ClickOnce),其存储库安装在即将崩溃的服务器上,所以我的老板要求我移动存储库,但大约有 300 台客户端计算机安装了该应用程序。

ClickOnce 使用测试证书进行签名。

是否可以移动存储库而无需在客户端计算机中重新安装?

提前致谢

[编辑]

我已将应用程序发布到新服务器,但客户端无法访问它,我还能做什么?我认为我应该更改清单中的某些内容或类似的内容,但实际上对 ClickOnce 不太了解...无论如何,我想避免在所有客户端计算机上重新安装,有什么想法、建议吗?提前致谢

【问题讨论】:

    标签: deployment clickonce


    【解决方案1】:

    这是我为可能有同样问题的人所做的。

    • 在发布包上设置新服务器。 (项目属性,发布选项卡)
    • 发布到新服务器
    • 将发布的文件复制到旧服务器。 (包括 .application 文件和文件夹)

    当客户端到达旧服务器时,它们会更新,但客户端上的服务器位置会更新为新的服务器名称。

    【讨论】:

      【解决方案2】:

      Jhonny 提供的答案对我来说似乎很有希望,但我在尝试时遇到了错误,我必须解决。它与证书有关。

      按照他的设置后,当我在客户端计算机上启动 ClickOnce 应用程序时,我收到一个错误对话框:“无法启动应用程序”。

      当我单击错误对话框中的详细信息... 按钮时,打开的文本文件显示应用程序正在尝试从新服务器的部署提供程序 URL 进行更新,但它给出了以下错误:

      “部署标识与订阅不匹配。”

      问题是用于在旧服务器上发布应用程序的证书已过期,我已经更新了在新服务器上发布的应用程序中的证书。证书不匹配。

      解决方案是首先使用新证书将应用程序发布到旧服务器,让用户打开应用程序以获取更新,然后使用新服务器的部署 URL 发布另一个新版本,并将文件复制到两台服务器。用户下次更新时,从旧服务器获取应用的版本,manifest指向新服务器,然后从新服务器检索所有后续更新。

      【讨论】:

        【解决方案3】:

        您可以尝试更改 DNS 别名,使其重定向到您的新服务器。

        使用证书签名的代码并不相关,因为代码签名证书未绑定到特定的存储库(与 SSL 证书相反)

        顺便说一句,你为什么不想重新安装? clickonce 的全部意义在于简化这种软件更新!

        【讨论】:

        • 但我实际上需要移动存储库,移动已计划好,服务器当前托管其他应用程序,所以我会说我无法控制服务器。
        • 如果服务器即将崩溃,为什么不将其完全替换为具有相同 dns 名称的新服务器呢?如果您无法做出该决定,您可能希望将您的存储库 URL 重定向到另一台服务器
        • 通过 clickonce 重新安装通常是自动的,我们担心,当我们更改存储库 url 时,我们不得不在每台机器上重新安装。
        • 绝对不是。只需更改您的 clickonce 应用程序,使其使用另一个存储库(即新的存储库)。真的,我认为你的情况过于复杂了。在以新存储库为目标的旧存储库上部署新版本作为安装存储库将起作用
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多