這是沒有必要創建一個專用的應用程序來更新,至少不在WM 6與.netcf 3.5。我正在使用web服務下載.cab文件,然後啓動一個新進程並調用wceload來進行無聲的出租車安裝。這需要照顧關閉我的運行應用程序,卸載它,然後執行安裝像 MSDN docs here
指出,在Windows Mobile 5.0及更高版本,使用Wceload.exe重新安裝一個.cab文件,WCELOAD時。在安裝新版本之前,exe會卸載以前安裝的.cab文件的版本。在此過程的卸載過程中,Wceload.exe根據文件名稱使用.cab文件關閉目標設備上安裝的所有當前正在運行的可執行文件。 Wceload.exe還會關閉任何作爲文件操作目標的可執行文件,例如移動或複製。要關閉可執行文件,Wceload.exe會將WM_CLOSE發送到進程擁有的所有頂級窗口。如果該進程在收到WM_CLOSE消息後沒有及時退出,則Wceload.exe通過調用TerminateProcess強制關閉它。 Wceload.exe不會嘗試關閉目標設備上運行時映像附帶的可執行文件。
我還有一個cesetup.dll用於在卸載過程中額外清除文件。
我遇到的最大問題是,無法在執行靜默安裝時更改我的應用程序的安裝文件夾,並且它默認使用我的.inf文件中的%installDir%屬性。爲每個想要更新的設備構建一個單獨的.cab文件並不是一個很好的解決方案。