簡體   English   中英

.NET Compact Framework-Windows Mobile 6.5上的CAB自動更新

[英].NET Compact Framework - CAB auto update on Windows Mobile 6.5

我正在為Windows Mobile 6.5 .NET CF 3.5應用程序開發自動更新功能。 我最終得到以下解決方案。

  1. 我使用SOAP WebService來檢查是否有新版本的應用程序可用。
  2. 如果有較新的版本,我會在SOAP響應中獲取URL,然后下載它。 新版本只是一個CAB完整安裝文件。
  3. 下載版本后,我會在下載的CAB上調用帶有/ silent和/ noui參數的wceload。 我想要無人值守的安裝,因為此應用程序的用戶是汽車駕駛員,他們在操作移動設備方面並不熟練。

該過程順利進行,只有一個例外-/ noui或/ silent選項強制wceload不顯示任何窗口。 我的應用程序消失了,並且在后台安裝了新版本。 問題是驅動程序有時試圖過早重新打開該應用程序。 另一點是,我希望我的應用程序在更新過程完成后自動啟動。 因此,我創建了一個單獨的exe應用程序,該應用程序僅調用wceload,如果完成安裝,它將運行更新的版本。 所有工作均具有onr例外-此安裝程序exe是我的CAB的一部分,因此它在其中。當wceload安裝CAB時,它會關閉安裝程序(因為它是CAB安裝程序的一部分)。 因此,安裝過程被中斷。 我的問題是-有沒有辦法“告訴CAB”不終止屬於該CAB的那些特定的exe?

問候

不要使用出租車。 使用tar.gz軟件包,其中包含可執行文件和cab。 使用SharpZipLib進行減壓。 只需運行可執行文件即可。 使用\\ windows \\ wceload工具運行cab安裝。

它並沒有真正回答您的問題,但是您可以執行以下操作:

  • 啟動另一個(小的)可執行文件,顯示“正在進行更新”屏幕。
  • 在幕后做你的事情

[設置結束] =>它會啟動更新的應用程序[稍等] =>它會自行關閉,更新的應用程序可以使用了

CAB安裝和WCELOAD在許多方面受到限制。 您正在使用某種UI,該UI告訴用戶事情正在進行中,並且您希望有條件地安裝CAB的某些部分,而開箱即用wceload根本無法實現。 您可能可以通過自定義安裝DLL來破解其中的一些內容,但是我認為“條件安裝件”仍然是節目的制勝法寶。

一種選擇是不使用wceload,而是創建自己的CAB提取工具。 然后,您可以根據文件名執行所有自己的UI和自定義邏輯,等等。幾年前,我組裝了一個SDK和示例安裝程序 ,這將允許這樣做-誠然,它不是免費的,但最低的成本選擇僅為5美元,因此非常接近。

較新的CAB實際上包含描述安裝操作的XML文檔 (除了我編寫的SDK所解碼的較舊的.000二進制文件描述符之外),因此也有可能您可以僅使用該提取並保存$ 5來進行所有提取。 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM