从浏览器下载一次应用程序

时间:2011-08-08 06:34:34

标签: c# .net clickonce

我正在努力使用win应用程序进行设置,并将其放在网站上。当一些用户第一次来到网站时,它会让用户下载我的应用程序。在运行安装程序时,我在注册表中创建了一个密钥,该密钥在我的脚本中由站点检查,如果密钥存在,则用户不会因为他/她安装了应用程序而提示。当用户卸载应用程序时,安装程​​序将删除regisrty密钥,安装时间为wirtten。

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

现在方案更改,用户已要求在clickonce中实施应用,因此他们必须更新应用而不是卸载并重新安装。他们仍然希望在网站上进行clickonce应用程序设置,如上所述,但问题是,当我第一次运行应用程序时,它将为该应用程序编写注册表,但在卸载时它不会删除注册表。正如以下链接set registry key through click once中所述。

有没有办法完成这个要求。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

Jim Harte撰写了一篇关于自动卸载/重新安装过程的优秀博客文章(found here)。他的文章是关于证书续订的问题,但卸载过程是相同的。

如果您的用户通过“添加/删除程序”对话框卸载应用程序,则不会删除该密钥。遗憾的是,我没有办法停止ClickOnce应用程序的卸载过程,以便您可以删除注册表项。除非周围的其他人找到了“创造性”解决方案,否则您将不得不忍受这种烦恼。