Windows Embedded Standard開發初體驗(四)

添加文件、依賴組件、註冊表


       接下來我們就要進入創建組件最重要的一環了,添加文件。爲什麼說重要,因爲這裏有一個大坑,我在Windows Embedded Standard產品組施衛娟老師的指導下,花了兩週的時間才勉強爬出來,可見該坑之深。

       在這裏我們使用了一個現成的Demo,SilverlightTV作爲我們的目標文件。SilverlightTV中包含很多文件和文件夾。我們要做的第一件事,就是將所有文件拷貝到一個文件夾中。這一點非常重要,因爲考慮到效率問題,Windows Embedded Standard組件中的文件只能包括在同一個文件夾中。

       主要提示:如果將包含子目錄的文件夾添加到組件中,組件設計器不會報錯,而要等到這個組件加入到Target Designer時,纔會報文件找不到的錯誤,並且在構建好的Image文件中,只會包括文件夾,而不會包括其中的文件。

       不過,新的問題就來了,如果我的文件結構是固定的,並且有相互的依賴關係,把所有文件都放到一個文件夾後,程序無法正常運行該怎麼辦呢?我們自然有辦法,不過現在,還是趕緊將所有文件放在一個文件夾中吧,這個文件夾就是添加Repositories時指定的Source Path文件夾。不過千萬記清文件原來所在的文件夾,否則下一步就麻煩了。


       做完這步之後,回到Component Designer中,在Files節點單擊右鍵,在菜單中選擇Add – Files in Folder,在稍後彈出的對話框中,選擇我們放置源文件的文件夾。經過下面的處理過程之後,文件夾中所有的文件都被加入到組件中了


       不過問題是,所有的文件還被放置在同一個目錄中,無法正常執行。這時,我們要通過一個比較繁瑣的過程來解決這個問題——修改文件的目的文件夾。在右側的文件列表中,選中某一個文件,雙擊,打開文件編輯對話框:


       我們打開的是一個wmv文件,我們只需要修改Destination中的目錄結構,%24%是一個轉義字符,表示C盤,我們不要去動它。根據我們文件的原始位置填寫目的文件的所在目錄就可以了。這個工作要花費一段時間,需要點耐心。

       接下來,我們要添加組件的Group Memberships,表示組件在組件目錄樹中所處的位置。我們在“Group Memberships”節點上右鍵選擇“Add Group Membership”命令。在彈出的對話框中,選擇SoftwareàSystemàUser InterfaceàShells,然後選擇Shell即可。點擊OK,關閉對話框。

       接下來爲組件添加依賴關係。依賴關係表明該組件依賴於那些組件,當我們添加了該組件到Target Image中時,在依賴檢查時,會將其所依賴的組件也添加到Image中。


       我們選擇“Component or Group Dependency”,右鍵菜單中“Add”-“Component Dependency”,會彈出添加組件依賴對話框。

       我們在“Component dependency source”選擇Database,即選擇組件數據庫中的組件。然後找到SoftwareàSystemàNetworking & Communicationsà ApplicationsàInternet Explorer – Hotfix Q321232,並且確認My Component下選擇的是“Depends on the selected component”,然後點擊Apply按鈕,添加依賴關係。

       這時對話框不會關閉,所以我們還需要添加第二個依賴組件,就是大名鼎鼎的


       好了,到這裏,我們的組件就基本完成了,哦,還忘了件事,添加註冊表。不過請大家注意的是,並不是每個Silverlight組件都需要添加註冊表項,是因爲SilverlightTV這個組件中調用了ActiveX,IE中會有安全限制,所以我們才通過修改註冊表的方式來規避這個問題。關於IE安全限制的問題,我們後邊會專門說明,在這裏大家只要瞭解如何爲組件添加註冊表項就可以了。


       在Component Designer中選擇Registry Data,右鍵菜單中選擇添加註冊表項。我們可以點擊Key name後邊的Browse按鈕,在註冊表中定位要添加的項。我們要添加的項爲:

       HKEY_CURRENT_USER/Software/Microsoft/Internet        Explorer/Main/FeatureControl/FEATURE_LOCALMACHINE_LOCKDOWN

       中的“iexplore.exe”項,值爲DWORD,設置爲0。

       大家一看就知道這個選項是與IE有關的,至於什麼關係,我們先賣個關子,稍後再說。先點擊OK,關閉註冊表編輯對話框。

       好了,到這裏我們支持Silverlight的Shell組件終於編輯完成了。好的,趕緊保存一下吧。不過,我們怎麼在Target Designer裏使用這個組件呢?

       這就要看下一節的了……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章