2012-02-07 134 views
16

通過互聯網更新MSI安裝的最佳方式是什麼?通過互聯網更新MSI安裝的最佳方法是什麼?

ClickOnce不支持MSI。

我需要通過Internet自動發生更新,與Windows更新發生的方式相同。

理想情況下,我希望我的應用程序能夠自動檢測到有更新可用並下載並安裝它。

回答應該只處理MSI的安裝。我不介意是否需要安裝Windows服務來監視更新。

+0

我很好奇,你有沒有得到這個實現? – 2014-05-09 15:29:33

回答

12

這裏就是我最近爲一個客戶做:

的UI運行作爲登錄的用戶。

服務以系統身份運行。該服務檢查內容並將其下載到臨時目錄。然後它使用/ JM命令通告MSI。安裝程序現在可以由非特權用戶安裝。

該服務嚮應用程序發送一條IPC消息,指出是時候安裝了。應用程序啓動安裝程序,向其傳遞一個指示重新啓動應用程序的標誌。應用程序釋放鎖定的文件。

在安裝程序結束時,標誌會導致安裝程序重新啓動應用程序。

也看看wuw4圖書館。它有助於創建很多這種解決方案。

這是一個複雜的模式,但工作得很好。我擁有一家可以幫助您制定解決方案的公司。 :)

+0

有幾個問題:是否有必要提供服務?難道應用程序只是在啓動時檢查更新?服務有權訪問哪個臨時文件夾? – CJ7 2012-02-15 01:07:35

+1

由於安全考慮以及Windows Installer的工作原理,最好有一個提升的進程,可以創建一個臨時目錄,其中非priv用戶只能讀取訪問權限,並從那裏通告安裝。非特權最終用戶進程然後可以啓動安裝,它將工作。如果非priv用戶在啓動時檢查更新,這會在路上造成海拔問題。 – 2012-02-15 01:28:51

+0

如果應用程序非常輕便,並且不需要管理員權限來安裝,那麼您可能需要考慮ClickOnce。但是如果這是一個Per-Machine安裝,任何非priv用戶都需要升級,那麼這種MSI模式就是您需要的。 – 2012-02-15 01:29:50

2

您可以使用msiexec實用程序。 Here你可以找到一個例子。

+0

我需要它通過互聯網自動更新。 – CJ7 2012-02-09 02:11:33

1

Windows安裝程序不支持自動更新,也不會處理它們的傳送。我工作的公司銷售的產品定位爲updates and more

1

這裏是我平時做(它只是我如何更新我的節目一個概念):

  • 使用Advanced Installer或任何其他MSI installer/packer支持Command Line收拾你的更新程序的文件。在繼續下一步之前,您需要正確設置參數並進行測試。

  • 轉到Visual Studio - >選擇您的項目然後 - >屬性 - >生成事件。

  • 在「Post-Build event command line」文本框中輸入先前創建的命令行參數,然後單擊確定。

  • 現在,無論何時您構建項目,visual studio都會自動將您的文件打包爲MSI安裝程序/打包程序。

  • 最後一步是從命令行也尋找FTP Client作品。

  • 設置正確的參數並將其添加到上一個之後的「生成後事件」中。

  • 現在,如果您再次使用visual studio構建項目。您的文件將被自動打包,然後上傳到您的服務器。

現在您的文件應該在服務器上完全更新,您不必再擔心這一點。這是我已經找到了最好的解決辦法,我使用它,它就像一個魅力...

編輯:一件事,你還可以添加一個簡單的程序來查找內部服務器上較新的更新你的程序。例如檢查文件或文件版本的MD5哈希值等,一旦例程發現新的更新,它應該提示用戶,然後你可以告訴用戶下載最新的更新等等......

+0

對不起,我不是故意要自動包發送到服務器。我的意思是用戶將收到產品的自動更新。 – CJ7 2012-02-20 02:26:33

+0

啊,你必須更新服務器上的文件先...然後讀取編輯部分。你應該創建「更新」檢查程序來檢查服務器上的新版本.... – SolidSnake 2012-02-20 03:39:21

0

Did你檢查應用程序虛擬化? http://www.microsoft.com/en-us/windows/enterprise/products-and-technologies/virtualization/default.aspx

這是將您的可執行文件/ msi流式傳輸到客戶端的好方法,同時確保它始終運行最新的msi。

+0

你能解釋一下這是什麼?我曾嘗試閱讀該網站,但無法理解它。 – CJ7 2012-02-20 02:23:40

+0

你可以看看這個 - http://blog.augustoalvarez.com.ar/2012/01/31/app-va-quick-glance-to-server-app-v-and-sequencing-server-applications / – whihathac 2012-02-20 13:46:33

相關問題