我有WCF客戶端服務器應用程序,併爲這兩個項目的MSI安裝項目。服務器是承載WCF服務的Windows服務,客戶端是WPF應用程序。現在我有一個自動化客戶端更新機制的要求。這是在客戶端打開它應該檢查服務器中是否有更新,如果是下載並安裝,然後運行。我應該使用點擊一次部署嗎?有沒有標準的機制來做到這一點,或者我應該手動實施它?還有其他建議嗎?
編輯
調查點擊一次的限制,感謝親愛的responsers,我發現,點擊一次不sutuble我們的應用程序,是否有其他的機制呢?什麼是與Web服務做到這一點的最佳做法..?
非常感謝部署和自動更新
部署和自動更新
回答
ClickOnce是一個偉大的工具。但是,在決定之前你應該知道它有一些限制。
- 它不允許您選擇應用程序的安裝位置。它將它們安裝在用戶配置文件下的混淆位置。是的,這意味着ClickOnce應用程序按照用戶下載和安裝,而不是按照計算機安裝。
- 它只是保持在用戶機器上的文件同步與服務器上的文件,僅此而已。您不能安裝第三方msi文件,註冊dll,安裝程序集到GAC等。
還有其他警告,但這兩個是大多數人的大問題。如果你能解決這些問題,那麼ClickOnce可能是你的選擇。
試用時,我只需從Visual Studio發佈您的應用程序並使用自我證書。如果您決定使用ClickOnce,您可能會想要使用MSBuild或MageUI來生成您的部署,並且您可能需要考慮從證書頒發機構(如Verisign)購買代碼簽名證書。
編輯
只是想回應@Richard Dunlap的評論。他是正確的,您可以在Visual Studio中指定先決條件,併爲您構建引導程序。引導程序不必單獨下載您prereqs,以正確的順序運行它們,等
然而節省了用戶,這在很大程度上只是一種功能,VS提供,並且是國際海事組織,從ClickOnce的獨立。 ClickOnce僅限於確保GAC中存在程序集,然後在沒有安裝的情況下使安裝失敗。您的引導程序和ClickOnce安裝之間確實沒有關係。你幾乎必須告訴用戶:「如果你沒有產品x,y或z,請在嘗試安裝我的應用程序之前運行這個引導程序。」沒有什麼ClickOnce可以檢查某些第三方COM產品,並強制用戶在運行應用程序之前安裝它。
這看起來像一個簡單的使用的ClickOnce的。無論您想使用自動的ClickOnce更新或做程序的更新,取決於以下因素:
如果你設置的ClickOnce在啓動之前檢查更新時,您會首先得到一個基本的Microsoft框通知用戶該應用程序正在檢查更新。如果你對此好,很好。如果您希望用戶首先看到您的啓動畫面,或者如果您有其他一些啓動活動需要與檢查更新並行運行,則可能需要其他選項。
如果你設置的ClickOnce在啓動後檢查更新,你直行進入應用程序,但該更新將不會被部署,直到下一次應用程序啓動;您當然可以通知用戶現在有更新的版本,並提供重新啓動選項。如果用戶最後一次運行舊版本,那麼這很有效。
如果這兩個選項都會導致您的問題,那麼您可以使用API來執行程序更新。這是我們選擇做的事情 - 因爲我們的ClickOnce應用程序是與Web服務通信的表示層客戶端,所以對我們的客戶來說最好始終運行最新版本的軟件。但是,我們希望在應用程序檢查更新時使用時間來執行其他內務處理(例如檢查Web服務的連接) - 我們希望用戶在等待期間看到我們的徽標和公司名稱。 :-)
足夠讓你開始?
調查點擊一次您和Whatknott說的限制,我發現點擊一次不適用於我們的應用程序,是否有任何其他機制? Hhat是使用Web服務做到這一點的最佳實踐... – 2009-07-16 03:49:37
此博客(http://coffeedrivendevelopment.blogspot.com/2008/09/clickonce-deployment-or-not.html)描述了他不使用ClickOnce的決定,以及一個用於編寫自己的自我更新的簡單機制程序。他使用源代碼控制來檢查新版本,但理論上可以檢查發佈新版本的位置,以及其他版本指示器(文本文件,數據庫,Web服務調用等)。
- 1. JBoss自動重新部署
- 2. 部署和更新網站
- 3. CircleCI和Heroku自動部署
- 4. 啓動部署滾動更新的自動替代
- 5. 部署Jelastic部分更新
- 6. WAR不會從自動部署中重新部署在Glassfish中
- 7. 新開發和部署的eclipse插件不會自動啓動
- 8. 自動VM部署
- 9. Magento - 自動部署
- 10. 自動Jenkins部署
- 11. Kubernetes部署沒有做滾動更新
- 12. Kubernetes部署與滾動更新
- 13. 如何部署自動更新WCF Windows服務?
- 14. 部署和更新VS2010應用程序
- 15. AIR企業部署和更新
- 16. 部署Beta軟件更新和Sparkle
- 17. 使用node.js自動部署和配置
- 18. 自動構建,部署和iPhone設備
- 19. 自動化測試,構建和部署
- 20. 自動構建和部署AWS
- 21. LESS部署和構建自動化
- 22. 使用Git,Bitbucket和PHP自動部署
- 23. ClickOnce&TFS自動構建和部署
- 24. PHP自動部署和測試
- 25. PCI DSS和釋放部署自動化
- 26. 自動部署以svn,ssh和PLSQL
- 27. 在SharePoint中自動構建和部署
- 28. 爲Javascript構建自動化和部署
- 29. Vert.x 2和IntelliJ自動重新部署問題
- 30. 更新一次部署
您可能想查看WiX(http://wix.sourceforge.net)。它可以幫助你建立你的.msi文件。我似乎記得一些與WiX(我認爲它被稱爲ClickThrough)的東西來幫助解決更新。我不知道它是否完全發展。 – codeConcussion 2009-07-23 14:20:41
謝謝whatknott我會檢查它 – 2009-07-23 16:44:42