2009-06-02 139 views
3

在某些WM Std 6.1上測試我的應用程序我發現它無法卸載。我收到此錯誤:Windows Mobile無法卸載

「[應用]並沒有完全消除。你想從已安裝的程序列表中刪除它嗎?「

檢查我的setup.dll我可以告訴Uninstall_Init和Uninstall_Exit每次都被調用,但所有文件都保持不變(我們已經檢查過)及其項不從安裝的應用程序列表中消失(我是否選擇它留與否)

+0

你的問題是什麼? – 2009-06-02 16:21:35

回答

2

,實際上只有三爲這個可能的原因:

  1. Uninstall_Init不回繼續。
  2. Uninstall_Exit不會返回繼續。
  3. 安裝程序引擎失敗。

如果您已驗證1 & 2然後確定然後3將很難找出。

,我中遇到的一些問題:

  • 檢查您的設置DLL的DLL依賴並嘗試刪除儘可能多的。我發現對MSXML的依賴可能會導致問題。
  • 刪除您的INF文件中的任何註冊表設置,將其移入您的設置DLL。我發現這會導致卸載在隨機設備上隨機失敗,因爲這一點。

我需要爲現有客戶做的事情是編寫一個卸載應用程序,以便在卸載工作時手動刪除我們的應用程序。如果您確實需要編寫手動解除安裝,您需要執行以下操作: *刪除所有註冊表項 *刪除所有文件 *刪除註冊表項HKLM \ Security \ AppInstall {應用程序名稱} *在WM6.1中,您需要從EDB數據庫「SwMgmtMetadataStore」中刪除SWT_INSTALL_NAME_TAG屬性等於您的{app name}的數據庫記錄。

+0

我認爲這將是3在我的情況下,1和2工作正常。感謝您的建議,我會像說的那樣做。 – michael 2009-06-04 11:08:42

1

另一件值得研究的事情是cab安裝/卸載過程創建的安裝日誌。

您可以在\ Application Data \ Volatile \目錄下找到它(通常稱爲setup.log)。

將此文件複製到您的臺式電腦並在記事本中打開它可能會提供更多線索(例如卸載時使用的文件),以瞭解卸載未成功的原因。

0

我有幾個CAB文件在WM 6.0上完美工作,但在WM 6.1中停止工作。

原來是因爲AppName或製造商中有空格。刪除空格固定了CAB文件,現在它們在WM 6.1中成功卸載!