我正在定製WPF應用程序的ClickOnce部署,並且希望確保我不會錯過關於該過程的某些內容。據我所知,ClickOnce將處理安裝應用程序,並可選擇在啓動時檢查更新,還可以選擇在應用程序啓動後按設定的時間間隔檢查更新。這可以在沒有任何自定義代碼或定製的情況下完成。自定義ClickOnce的「Update at Statup」功能
如果我們想要我們可以通過編寫我們自己的「安裝」程序來定製安裝過程。它可以是使用以下演練的標準WPF應用程序。這是正在安裝的應用程序的單獨項目。
演練:Creating a Custom Installer for a ClickOnce Application
我們可以這樣通過實施以下演練的代碼建立一個「檢查更新」功能。
如何:Check for Application Updates Programmatically Using the ClickOnce Deployment API
什麼我不知道的就是我們能在那裏定製的ClickOnce檢查在啓動更新,因爲用戶點擊快捷方式打開應用程序的一部分嗎?我喜歡每次用戶打開應用程序時檢查更新的想法,但我想完全自定義該過程。據我所知,似乎沒有辦法自定義ClickOnce在啓動時檢查更新的部分。有人可以驗證嗎?
如果無法自定義「啓動時更新」過程,那麼我看到的一個替代方法是根本不使用ClickOnce,編寫自己的自定義代碼來處理安裝,檢查啓動時的更新以及檢查更新應用程序正在運行。
SO上有一些其他帖子提出類似這樣的問題。
Customize clickonce download screen
我的應用程序有一個動態的閃屏。我可以更改該啓動畫面以顯示諸如Checking for updates…
之類的消息,如果找不到任何消息,請繼續加載該應用程序。如果發現更新,然後強制應用程序重新啓動?這裏的缺點是我們會看到兩次啓動畫面。
如果這是我自己定製的過程,那麼我會有兩個EXE,一個是MyApplicatoinUpdate.exe
,第二個是MyApplication.exe
。快捷方式將啓動MyApplicationUpdate.exe
執行Checking for updates
,如果找到一些然後下載它們(文件尚未使用)。如果沒有找到更新,則啓動MyApplication.exe
並讓MyApplicationUpdate.exe
自行關閉。最後更新updater將這個邏輯放在MyApplication.exe
。不知道ClickOnce
是否會允許我定製它。
感謝, -Eric