有没有办法更改已安装的单击一次应用程序的更新URL

时间:2011-04-09 06:23:23

标签: c# .net clickonce

我们自2006年以来一直使用点击一次,现在需要更改更新位置,这发生过一次,但我们刚刚卸载并重新安装,现在这将是有问题的。

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

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

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

  1. 使用版本5.2
  2. 在clickonce.mycompany.com上发布应用
  3. 使用版本5.1在apps.mycompany.com上发布应用程序,当应用程序启动时,该应用程序具有引导代码以更改应用程序清单以更改URL。
  4. 通过此过程,客户端将连续获得两个新的更新。感染,如果我向两个位置发布5.1,它应该可以工作。

2 个答案:

答案 0 :(得分:1)

这种类型的东西可以通过让app自己卸载然后重新安装来解决。我以前做过,虽然我是从网络位置安装的,而不是网址,但它应该是一样的。

这个解决方案在msdn上的

Here is a link。请转到“如何以编程方式卸载Click Once应用程序并安装新版本”部分。

您还可以查看解决方案的其他版本here

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

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

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

答案 1 :(得分:0)

使用这些命令行

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