2011-08-08 38 views
1

我一直在win應用程序的設置,並把它放在網站上。當一些用戶第一次訪問網站時,它會讓用戶下載我的應用程序。並且在運行安裝程序時,我在註冊表中創建了一個密鑰,該密鑰是通過站點在我的腳本中檢查的,如果密鑰存在比用戶不會提示他/她已安裝應用程序。當用戶卸載應用程序時,安裝程​​序將在安裝時刪除註冊表項。下載點擊一次從瀏覽器中的應用程序

注意:我將我的網站添加到可信網站並強化其安全性以閱讀我的腳本。

現在情況發生變化,用戶要求在clickonce中實施應用程序,以便他們必須更新應用程序,而不是卸載並重新安裝。他們仍然希望如上所述在網站上設置clickonce應用程序,但這裏的問題是,當我第一次運行應用程序時,它將爲該應用程序編寫註冊表,但在卸載它時不會刪除註冊表。如以下鏈接set registry key through click once中所述。

有沒有什麼辦法可以達到這個要求。任何幫助將不勝感激

+1

您不需要卸載並重新安裝應用程序以使其更新。一旦安裝了應用程序,您可以更新相關的exe或程序集。 – Jethro

+0

感謝您的回覆。我的意思是說,如果用戶已經卸載應用程序,出於任何原因。比我想再次提示他重新安裝,但作爲clickonce卸載不刪除註冊表值,所以我應該怎麼做,瀏覽器我再次提示用戶。 –

回答

1

如果您想在應用程序卸載之前刪除註冊表項,則需要從您可以控制的代碼中的某個位置啓動卸載過程。爲此,您需要讓用戶從應用程序中啓動卸載過程。當用戶啓動卸載過程時,您需要先從應用程序中刪除註冊表項,然後再繼續卸載。

Jim Harte有一篇優秀的博客文章(found here)關於自動化卸載/重新安裝過程。他的文章是關於證書更新的問題,但卸載過程是相同的。

如果您的用戶通過「添加/刪除程序」對話框卸載應用程序,則該鍵不會被刪除。不幸的是,我不知道要停止ClickOnce應用程序的卸載過程,以便您可以刪除註冊表項。這只是一個煩惱,你必須忍受,除非周圍的其他人找到了「創造性」解決方案。

+0

謝謝你RLH,你提供的鏈接幫助了我很多。 –

2

檢查更新選項在發佈設置中啓用(如果需要指定更新的最低版本指定它也)。 當應用程序啓動時它會自動檢查更新。用戶不需要每次卸載

+0

感謝您的回覆。我的意思是說,如果用戶已經卸載應用程序,出於任何原因。比我想再次提示他重新安裝,但作爲clickonce卸載不刪除註冊表值,所以我應該怎麼做,瀏覽器我再次提示用戶。 –

相關問題