2010-05-06 41 views
3

我們使用ClickOnce其中檢查和對應用程序的啓動程序執行更新部署WPF應用程序。除了用戶對我們的「你想更新?」選擇「否」的情況之外,這通常表現完美。提示。在這種情況下,下次用戶啓動應用程序(一致)時,ClickOnce框架的「可用更新」對話框將啓動,並提供更新或跳過選項。這不會導致技術問題,但會讓用戶感到困惑,因爲它可能會看到兩個完全不同樣式的對話框。 (如果用戶選擇跳到ClickOnce對話框,則應用程序將啓動並呈現我們自己的「Update Available」對話框)。任何想法爲什麼ClickOnce框架對話框在這種情況下顯示?謝謝。配置爲執行更新ClickOnce應用程序編程仍然有時顯示的ClickOnce更新可用提示

回答

7

在「更新」對話框(它位於「發佈」選項卡中)中,是否已取消選中用於檢查更新的框?

[編輯6/18/2010]這裏有一些我認爲可以解決您的問題的更多信息。

CheckForUpdate()CheckForDetailedUpdate()方法持續更新檢查到磁盤的結果。下次應用程序運行時,ClickOnce機制會發現有更新可用,並提示用戶使用不需要的窗口。

顯然在更新過程分爲兩個步驟:

  • 步驟1 - 檢查更新的部署位置,堅持什麼發現到當地的ClickOnce更新緩存中的信息。
  • 步驟2 - 檢查本地的ClickOnce更新緩存,並與更新窗口提示用戶是否有更新的指示。

取消選中「應用程序應該檢查更新」選項似乎只會導致ClickOnce跳過步驟1.步驟2仍然會發生。

CheckForUpdate()CheckForDetailedUpdate()方法與步驟1具有相同的效果 - 數據持久化到磁盤,因此下次運行應用程序時,步驟2會看到更新並顯示更新窗口。

訣竅是防止CheckForUpdate()CheckForDetailedUpdate()從堅持這個信息到磁盤。這可以通過使用該參數化過載(CheckForUpdate(bool persistUpdateCheckResult)CheckForDetailedUpdate(bool persistUpdateCheckResult))設置爲false參數來完成(即,CheckForUpdate(false)CheckForDetailedUpdate(false))。

+0

我們沒有使用Visual Studio發佈,我使用MSBuild設置了一個自動發佈。 GenerateDeploymentManifest任務指定Install =「true」,UpdateEnabled =「false」,並且不指定UpdateMode,在這種情況下這應該是不相關的。謝謝。 – 2010-05-06 21:35:00

+0

好的,明白了。我一直看到這個報告(與w/Visual Studio相同)。我會看看我是否可以重新創建它,並查看是否可以重新創建它。如果可以的話,我會提交一個bug並與ClickOnce產品團隊討論。我會回報... – RobinDotNet 2010-05-07 17:25:46

+0

嗨,羅賓,你是否設法複製這個?這是ClickOnce中的錯誤嗎?如果有一種解決方案,我們真的希望在上線之前實施它。謝謝。 – 2010-05-23 21:18:11

0

CheckForUpdateCheckForDetailedUpdate應該用參數false調用方法。

這些方法的文檔intellisense令人困惑。

相關問題