我有一个使用ClickOnce部署的Windows Forms应用程序,但用户导航到网络驱动器并双击setup.msi而不是使用网页进行安装。
我有两个安装了它的用户,它在过去工作过。我上周做了一个uppate,现在当用户尝试启动应用程序时,弹出“验证应用程序要求”的窗口,然后当它消失时,没有任何反应。询问是否可以更新的对话框永远不会弹出。
网络用户已经验证他们拥有网络驱动器的权限(但是,如果这是问题,我会发出错误消息)。
可能导致这种情况发生的原因是什么?
答案 0 :(得分:2)
最近是否为用户安装了Kensington硬件驱动程序(例如鼠标或tracball)?有一个驱动程序错误导致ClickOnce应用程序的行为方式与您所描述的非常接近。这是问题的one discussion。
答案 1 :(得分:1)
您是否碰到了发布版本? (但是,发布向导应该自动执行此操作)
您是否更改了任何内容 - 例如程序集名称?
您是否将更新标记为强制更新? (也就是说,将所需的最小版本设置为等于新的发布版本。)如果没有,则有可能某些用户在更新时单击“跳过”,并且应用程序将不再尝试自我更新七天。 这些用户必须卸载他们当前的应用程序,他们必须手动安装新的应用程序 - 或者等待一周。
答案 2 :(得分:0)
如果发布的位置在IIS上,请确保IIS网站正常运行。您可以通过查看ClickOnce Installer网页是否来自http托管位置来执行此操作。
我今天遇到了这个问题。发布了一个类似我过去几十次的更新 - 结果发现IIS中的应用程序池出了问题。更改应用程序池(或重新启动Web服务器)解决了该问题。
答案 3 :(得分:0)
我遇到了这个问题,因为Windows将ClickOnce缓存标记为来自Internet(而不是来自IE可信站点区域中的站点)。只要您知道该应用程序是安全的,就可以download Sysinternals streams.exe并从命令提示符下运行它,如下所示:
streams.exe -s -d c:\Users\YourUserProfile\AppData\Local\Apps\2.0
这将清除所有告诉Windows缓存的二进制文件来自Internet的备用数据流,从而允许程序启动。
我曾尝试将ClickOnce源URL添加到“ Internet Explorer可信站点”区域中,但这并不能解决我的问题。