【问题标题】:Is there a way to alter the update URL for installed click once applications有没有办法改变安装点击一次应用程序的更新 URL
【发布时间】:2011-04-09 06:23:23
【问题描述】:

自 2006 年以来我们一直在使用 click,现在需要更改更新位置,以前发生过一次,但我们刚刚卸载并重新安装,现在会出现问题。

Click Once Migrate URL 中提出了一个解决方案,但是当我们在几年前尝试 (.NET 2.0) 时,它失败了,应用程序指出更新的 URL 和客户端的 URL 不匹配,从而引发了安全风险并阻止了更新的发生和启动。

The docs state 这个属性只能在应用程序清单中更改,但我不确定在已部署的应用程序中实际更改此属性的方法。

我想使用如下流程,假设当前版本为 5,部署位置为 apps.mycompany.com,新位置为 clickonce.mycompany.com

  1. 在 clickonce.mycompany.com 上发布 5.2 版应用
  2. 在 apps.mycompany.com 上发布应用程序,版本为 5.1,该应用程序启动时具有引导代码以更改应用程序清单以更改 URL。

通过此过程,客户端将连续获得两个新更新。感染,如果我将 5.1 发布到两个位置,它应该可以工作。

【问题讨论】:

    标签: c# .net clickonce


    【解决方案1】:

    这类事情可以通过让应用自行卸载然后重新安装来解决。我以前做过,虽然我是从网络位置安装的,而不是 url,但应该是一样的。

    Here is a link 在 msdn 上用于此解决方案。转到“如何以编程方式卸载 Click Once 应用程序并安装新版本”部分。

    您还可以查看解决方案的不同版本here

    这可行,但有点棘手。这是我所知道的解决此类问题的唯一方法。

    编辑如果您使用该文章中的信息,请注意以下两点。

    1. 确保自行卸载的应用程序的更新不是可选的。您需要使所需的版本成为当前部署的版本。否则,恢复选项可用并且是卸载对话框的默认选项,应用不会自行卸载。
    2. 确保在 DeploymentUtils 类的 GetUninstallString 方法中,将它要查找的 DisplayName 从“TestCertExp_CSharp”更改为您的应用程序的名称。

    【讨论】:

    • 听起来是一种非常有趣的执行此操作的方式。不过,我确实有一个问题,这个过程如何处理存储的用户文件和应用程序设置?这是我们不希望卸载和重新安装的主要原因,因为这些会在此过程中丢失。我想一种选择是让升级过程将资源复制到一个临时位置,并在安装新版本后让新的资源读取它们?
    • Holly cow,这是一篇简洁的文章,并解释了我不知道的 3.5 SP-1 和 2.0 SP-1 的一些更新。当我们上次尝试更改所有客户端都使用 XP 的 2.0 时,Vista 甚至还没有推出。幸运的是,现在 Win-7 上的每个人都拥有 .NET 4.0,并且该应用程序面向 3.5-SP1。我开始认为,由于微软已经包含了这些修复程序,我可能能够非常简单地使用新 URI 发布更新并完成它。非常感谢您的帮助,我将在接下来的几周内使用测试环境进行尝试。
    • 有些事情需要注意。请参阅我的更新答案。
    【解决方案2】:

    使用这些命令行

    mage.exe -Update setuptest_1_0_0_2.application -ProviderUrl http://127.0.0.1/setuptest/setuptest.application
    
    mage.exe -Update setuptest_1_0_0_2.application -AppManifest setuptest_1_0_0_2\setuptest.exe.manifest
    
    mage.exe -Sign setuptest_1_0_0_2.application -CertFile setuptest_TemporaryKey.pfx -Password mypassword
    
    mage.exe -Update setuptest.application  -ProviderUrl http://127.0.0.1/setuptest/setuptest.application
    
    mage.exe -Update setuptest.application -AppManifest setuptest_1_0_0_2\setuptest.exe.manifest
    
    mage.exe -Sign setuptest.application -CertFile setuptest_TemporaryKey.pfx -Password mypassword
    

    检查这个:http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2939893&SiteID=1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多