2010-02-08 107 views
2

我在使用我的.inf文件中的宏創建我的cab時遇到問題,特別是在設置InstallDir字符串時。如果我做這樣的事情:在Windows CE上安裝cab文件時出錯

InstallDir=\<PathToProgramFiles>\MyAppName 

然後一切工作正常。但是,如果我這樣做:

InstallDir=%CE1%\MyAppName 

然後我得到試圖安裝駕駛室(雙攻它在我的設備上),當出現以下錯誤:「 MyAppName沒有安裝成功,請重新運行安裝程序」

這似乎只適用於內置的宏字符串。我可以使用%AppName%沒有任何問題。也許有一些註冊表設置沒有正確設置,通常會解決%CE1%宏?

有關發生了什麼的任何想法?

編輯:我的設備沒有\Program Files目錄。看來%CE1%宏總是會解析到那個路徑,如果inf文件中指定的InstallDir不存在(除了最後一個目錄部分,那麼安裝失敗,手動創建\Program Files修復了這個問題,因爲很多設備我正在爲他們的Program Files目錄有不同的路徑,有沒有一種通用的方式來讓安裝程序默認到實際的Program Files目錄?我想我唯一的選擇是不指定路徑並強制用戶選擇一個?

回答

1

首先,在this鏈接,您可以找到快捷方式和它們的含義(在%C ..%),轉到附錄B. The Windows CE5 MSDN鏈接。

可以添加Setup Dll添加到您的CAB安裝程序,該安裝程序將檢查目錄結構並在不存在的情況下創建一個文件夾。您可能會發現this SO問題有用。

警告:如果您的目標是定期安裝Windows CE設備,請注意將文件放置到基於RAM的文件系統的位置,然後這些文件將在重新啓動後消失。

+0

感謝您的信息。我認爲我的問題是最終定義的宏是用於本地化的目的,而不是查找真正的路徑(例如SHGetSpecialFolder())。我想我最終將不得不建立我自己的安裝程序,以妥善處理這些差異。它看起來不像一個自定義安裝DLL將允許我調整安裝路徑... – Jason 2010-02-09 14:10:20