【问题标题】:download click once application from browser从浏览器下载单击一次应用程序
【发布时间】:2011-08-10 20:24:25
【问题描述】:

我正在处理 win 应用程序进行设置,并将其放在现场。当某些用户第一次访问站点时,它会提示用户下载我的应用程序。并且在运行安装程序时,我在注册表中创建了一个密钥,该密钥已按站点在我的脚本中进行了检查,如果密钥存在,则不会提示用户,因为他/她已经安装了应用程序。当用户卸载应用程序时,安装程​​序将删除注册表项,在安装时写入。

注意:我将我的网站添加到受信任的网站并更改其安全性以阅读我的脚本。

现在情况发生了变化,用户要求在 clickonce 中实现应用程序,因此他们必须更新应用程序而不是卸载并重新安装它。如上所述,他们仍然希望在网站上设置 clickonce 应用程序,但这里的问题是,当我第一次运行应用程序时,它会为该应用程序编写注册表,但在卸载时它不会删除注册表。正如以下链接set registry key through click once中提到的那样。

有什么方法可以实现这个要求。任何帮助将不胜感激

【问题讨论】:

  • 您无需卸载并重新安装应用程序即可对其进行更新。安装应用程序后,您只需更新相关的 exe 或程序集即可。
  • 感谢您的回复。我的意思是说,如果用户出于任何原因卸载了应用程序。比我想再次提示他重新安装,但是由于clickonce卸载不删除注册表值,所以我应该怎么做那个浏览器我再次提示用户。

标签: c# .net clickonce


【解决方案1】:

检查更新选项是否在发布设置中启用(如果需要,请指定更新的最低版本,也请指定它)。 当应用程序启动时,它会自动检查更新。用户不需要每次都卸载

【讨论】:

  • 感谢您的回复。我的意思是说,如果用户出于任何原因卸载了应用程序。比我想再次提示他重新安装,但是由于clickonce卸载不删除注册表值,所以我应该怎么做那个浏览器我再次提示用户。
【解决方案2】:

如果您想在应用程序卸载之前删除注册表项,则需要从代码中您可以控制的位置启动卸载过程。为此,您需要让用户从您的应用程序中启动卸载过程。当用户开始卸载过程时,您需要先从应用程序中删除注册表项,然后才能继续卸载。

Jim Harte 有一篇关于自动化卸载/重新安装过程的优秀博文 (found here)。他的文章是关于证书更新的问题,但是卸载过程是一样的。

如果您的用户通过“添加/删除程序”对话框卸载应用程序,则不会删除密钥。不幸的是,我知道没有办法停止 ClickOnce 应用程序的卸载过程,以便您可以删除注册表项。这只是你必须忍受的烦恼,除非附近的其他人找到了“创造性”的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2016-09-11
    相关资源
    最近更新 更多