Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 配置为以编程方式执行更新的ClickOnce应用程序有时仍会显示ClickOnce Update Available提示符_Wpf_Dialog_Clickonce - Fatal编程技术网

Wpf 配置为以编程方式执行更新的ClickOnce应用程序有时仍会显示ClickOnce Update Available提示符

Wpf 配置为以编程方式执行更新的ClickOnce应用程序有时仍会显示ClickOnce Update Available提示符,wpf,dialog,clickonce,Wpf,Dialog,Clickonce,我们使用ClickOnce部署了一个WPF应用程序,它在应用程序启动时以编程方式检查并执行更新。除了用户对“是否希望更新?”提示选择“否”的情况外,这通常表现良好。在这种情况下,用户下次(一致地)启动应用程序时,ClickOnce框架的“可用更新”对话框将启动,并带有更新或跳过选项。这不会导致技术问题,但会让用户感到困惑,因为用户可能会看到两个风格完全不同的对话框。(如果用户选择跳到ClickOnce对话框,则应用程序将启动并呈现我们自己的“可用更新”对话框)。你知道为什么在这种情况下会显示Cl

我们使用ClickOnce部署了一个WPF应用程序,它在应用程序启动时以编程方式检查并执行更新。除了用户对“是否希望更新?”提示选择“否”的情况外,这通常表现良好。在这种情况下,用户下次(一致地)启动应用程序时,ClickOnce框架的“可用更新”对话框将启动,并带有更新或跳过选项。这不会导致技术问题,但会让用户感到困惑,因为用户可能会看到两个风格完全不同的对话框。(如果用户选择跳到ClickOnce对话框,则应用程序将启动并呈现我们自己的“可用更新”对话框)。你知道为什么在这种情况下会显示ClickOnce框架对话框吗?谢谢。

在“更新”对话框(位于“发布”选项卡中)中,是否取消选中复选框以检查更新

[编辑2010年6月18日]以下是我认为可以解决您问题的更多信息

CheckForUpdate()
CheckForDetailedUpdate()
方法将更新检查的结果保存到磁盘。下一次应用程序运行时,ClickOnce机制会看到更新可用,并向用户提示不需要的窗口。

显然,更新过程分为两步:

  • 步骤1-检查部署位置是否有更新,并将其找到的信息持久保存到本地ClickOnce更新缓存中
  • 步骤2-检查本地ClickOnce更新缓存,如果指示有更新,则向用户提示更新窗口
取消选中“应用程序应检查更新”选项似乎只会导致ClickOnce跳过步骤1。第二步仍然发生。

CheckForUpdate()
CheckForDetailedUpdate()
方法与步骤1具有相同的效果-数据被持久化到磁盘,因此下次运行应用程序时,步骤2会看到更新并显示更新窗口。


诀窍是防止
CheckForUpdate()
CheckForDetailedUpdate()
将此信息持久化到磁盘。这可以通过使用参数化重载(
CheckForUpdate(bool persistudatecheckresult)
CheckForDetailedUpdate(bool persistudatecheckresult)
)并将参数设置为
false
(即,
CheckForUpdate(false)
CheckForDetailedUpdate(false)
)来实现

应使用参数
false
调用
CheckForUpdate
CheckForDetailedUpdate
方法


这些方法的
intellisense
文档令人困惑。

我们没有使用Visual Studio发布,我已经使用MSBuild设置了自动发布。GenerateDeploymentManifest任务指定Install=“true”、UpdateEnabled=“false”,而不指定UpdateMode,在本例中这应该是无关的。谢谢,好的,明白了。我一直看到这篇报道(与Visual Studio相同)。我会看看我能不能再创造它,看看我能不能再创造它。如果可以的话,我会在上面提交一个bug,并与ClickOnce产品团队讨论它。我会回来报告的……嗨,罗宾,你成功复制了这个吗?它是ClickOnce中的一个bug吗?如果有解决方案,我们真的希望在上线前实施。谢谢。嗨,我向ClickOnce团队报告了这件事,他们应该会检查的。我在周五收到了运行人员发来的一封电子邮件,他们没有忘记,他们现在正下着大雪。你有一个复制这个的小项目吗?你能在Connect和attach项目中提交一个bug并发布链接吗?如果你能做到的话,我会缠着他们的。我是说,提醒他们这件事谢谢我提交了一个附带测试项目的bug: