我以前見過這樣的東西。我認爲發生的事情是,當應用程序啓動時,ClickOnce不檢查更新,這是您設置的。當你運行應用程序時,更新檢查以編程方式完成,並且找到更新並且可能設置了標誌。然後應用程序關閉而不更新,但標誌仍然被設置。下一次啓動應用程序ClickOnce仍然不檢查更新,但因爲有一個標誌設置有更新可用,它會提示用戶查看他們是否想要獲取更新。我猜這是設計。
關於跳過更新的第二點,在有另一個更新之前不會再提示您。我相信這是有計劃的,如果你想回去做更新,你需要去應用程序的ClickOnce安裝頁面。
理想情況下,您希望能夠執行的操作與使用Application Deployment API以編程方式跳過使用ClickOnce對話框時發生的相同。我已經快速瀏覽了可用的公共方法,但我看不到任何有關跳過的內容,但也許您可以找到某些內容。
編輯
只是再看看API。你是否調用CheckForUpdate()或CheckForDetailedUpdate()而不使用布爾參數?如果是這樣,你所得到的提示的原因是因爲我說的是更新檢查被存儲:
如果的checkForUpdate發現有可用的更新,並且用戶 選擇不安裝它,ClickOnce的會提示用戶在下次運行應用程序時,可以使用更新 。沒有 的方法來禁用此提示。 (如果應用程序是必需的 更新的ClickOnce將安裝它,而不提示。)
相反,你想打電話給你使用的是有假的布爾值的方法,布爾標誌決定一個對話框,應顯示給用戶。
persistUpdateCheckResult類型:System.Boolean 如果爲false,更新將被默默地應用並不會顯示對話框。
當你說你編程方式檢查,您使用的是API CheckForDetailedUpdate? – Nikki9696
我使用CheckForUpdateAsync –