本演練演示如何使用 Visual Studio 2005 將應用程序及其資源打包到一個 CAB 文件中,以便可以將它部署到最終用戶的智能設備上。
注意 |
---|
顯示的對話框和菜單命令可能會與“幫助”中描述的不同,具體取決於當前的設置或版本。若要更改設置,請在“工具”菜單上選擇“導入和導出設置”。有關更多信息,請參見 Visual Studio 設置。 |
在本演練中,您可以從任何用 Visual Basic 2005、Visual C# 2005 或 Visual C++ 2005 編寫的智能設備解決方案開始。有關更多信息,請參見演練:創建簡單應用程序。
本演練演示如何執行下列操作:
-
將一個 CAB 項目添加到解決方案中。
-
更改產品名稱。
-
更改輸出路徑。
-
用應用程序的主輸出填充 CAB 文件。
-
在必要時添加依賴項。
-
創建應用程序的快捷方式。
-
編輯註冊表項。
一個現有的智能設備解決方案。對於本打包演練,可以考慮創建並生成一個簡單的項目,例如,演練:創建用於設備的 Windows 窗體應用程序中介紹的項目。
注意 |
---|
顯示的對話框和菜單命令可能會與“幫助”中描述的不同,具體取決於當前的設置或版本。若要更改設置,請在“工具”菜單上選擇“導入和導出設置”。有關更多信息,請參見 Visual Studio 設置。 |
更改產品名稱和其他項目屬性
-
在“解決方案資源管理器”中選擇“CABProject”(如果尚未選定)。
-
在“視圖”菜單上單擊“屬性窗口”,或打開“屬性”窗口。
-
在屬性網格的“ProductName”字段中,將值更改爲“MyProduct”。
“ProductName”屬性的值決定了在文件夾名稱和“添加或刪除程序”對話框中爲應用程序顯示的名稱。
-
還可以使用此窗口更改制造商的名稱,以及指定允許的最低和最高操作系統版本。
-
可以將“OSVersionMin”屬性設置爲 4.21,以指示您的 Pocket PC 應用程序具有屏幕方向感知功能。但是,將此屬性設置爲 4.21 會阻止應用程序安裝到基於 Windows Mobile 2003 或更早版本的 Pocket PC 上。若要允許在此類設備上安裝該程序,並通知較新的設備該程序具有屏幕方向感知功能,則必須手動編輯 .inf 文件,將“BuildMax”屬性設置爲下列值之一:
0xA0000000,指示應用程序支持方形屏幕(240x240 像素)
0xC0000000,指示應用程序支持屏幕旋轉
- 或 -
0xE0000000,指示應用程序支持方形屏幕和屏幕旋轉。
有關更多信息,請參見 MSDN 白皮書“Developing Screen Orientation-Aware Applications”(開發識別屏幕方向的應用程序)。
-
對於基於 Windows Mobile 2003SE 和更早版本的 Pocket PC 解決方案,“Compress”屬性和“NoUninstall Device Deployment”屬性必須爲 False。請注意,對於配備了 Compact Framework 2.0 的設備,此選項可以設置爲 true。有關更多信息,請參見“智能設備 Cab 項目”->“屬性”窗口。
-
如果您使用的是 Windows CE 安裝程序 DLL,使用此屬性網格可以指定文件名和位置。有關 Windows CE 安裝程序 DLL 的更多信息,請參見 Pocket PC 或 Smartphone SDK 文檔。
-
更改 CAB 文件的名稱並添加身份驗證
-
在“解決方案資源管理器”中右擊“CABProject”,然後單擊“屬性”。
出現 CAB 項目的“屬性頁”對話框。在“輸出文件名”框中,將 CAB 文件的名稱和路徑更改爲 Debug/MyApp.cab,然後單擊“確定”。
-
還可以使用此屬性頁爲項目添加身份驗證。身份驗證對於 Smartphone 解決方案是必需的,但是在基於 Windows Mobile 2003 SE 和更早版本的 Pocket PC 解決方案上,身份驗證不受支持。有關更多信息,請參見設備項目中的安全性。
爲 CAB 項目添加設備項目應用程序
-
在“文件系統編輯器”的左窗格中,選擇“應用程序文件夾”節點,以指定下列步驟中選擇的文件將安裝到目標設備上的此文件夾中。
如果“文件系統”編輯器不可見,請在“解決方案資源管理器”中右擊 CAB 項目名稱,選擇“視圖”,再單擊“文件系統”。
-
在 Visual Studio 中的“操作”菜單上指向“添加”,然後單擊“項目輸出”。
-
在“添加項目輸出組”對話框中,從“項目”下拉列表中選擇您的智能設備項目。
-
從輸出列表中選擇“主輸出”,然後單擊“確定”。
注意 |
---|
爲使用 C++ 編寫的應用程序創建智能設備 CAB 項目時,如果要動態鏈接到 DLL,必須手動向 CAB 項目添加所有依賴項,如 atl80.dll、mfc80U.dll 和/或 msvcr.dll。但是,爲了減少 MFC/ATL DLL 的依賴項,強烈建議您使用靜態鏈接。如果採用的是靜態鏈接,則無需隨同應用程序一起重新發布 DLL。如果採用的是動態鏈接,並需要在 CAB 中重新發布 DLL,請不要將 DLL 安裝到設備上的系統目錄(如 /windows)中,而應將 DLL 安裝到本地應用程序目錄中。如果重新發佈一個應用程序套件,而套件中的所有應用程序都動態地鏈接到 ATL/MFC 運行庫,建議您將所有應用程序和運行庫 DLL 安裝到一個單獨的應用程序目錄中,併爲可以放置在其自己的文件夾中的應用程序提供快捷方式。這樣可以避免發生系統目錄中的 DLL 在以後被替換,從而破壞動態鏈接到這些 DLL 的任何應用程序的危險,同時還可以節省一些空間。 |
向 CAB 項目中添加依賴項(僅限 C++ 項目)
-
在“解決方案資源管理器”中右擊 CAB 項目的名稱,指向“添加”,再單擊“文件”。
-
導航至 <Visual Studio 安裝文件夾>/VC/ce/dll/<平臺>。
-
選擇要添加的文件。
-
對於 MFC 項目,請按 Ctrl,再單擊 MFC80U.DLL、atl80.dll 和 msvcr80.dll。如果應用程序需要特定於 MFC 語言的資源,您可能還需要單擊一個或多個特定於語言的 DLL。
-
對於 ATL 項目,請按 Ctrl,再單擊 atl80.dll 和 msvcr80.dll。如果 ATL 解決方案支持 MFC,還需要單擊 MFC80U.DLL。
-
對於 Win32 項目,請單擊 msvcr80.dll。
-
-
在“添加文件”對話框中單擊“打開”,將文件添加到 CAB 項目中。
-
在“文件系統編輯器”的左窗格中,右擊“目標計算機上的文件系統”。
-
單擊“添加特殊文件夾”,然後單擊“Windows 文件夾”。
-
在“文件系統編輯器”的左窗格中,單擊包含主輸出的文件夾。默認情況下,DLL 已添加到與主輸出相同的文件夾中。若要將這些 DLL 移動到 Windows 文件夾中,請在“文件系統編輯器”的中間窗格中選擇這些文件,然後將它們拖到“Windows 文件夾”圖標上。
-
使用相同的過程添加解決方案需要的其他任何依賴項。可以將依賴項添加到任何文件夾中;而不必將它們添加到“Windows”文件夾。
爲設備項目應用程序創建快捷方式
-
在“文件系統編輯器”的右窗格中,選擇“<your application project name> 的主輸出”。
-
在“操作”菜單上選擇“創建 <your application project name> 的主輸出的快捷方式”。
此命令將在“輸出”項的下面添加一個快捷方式項。
-
右擊該快捷方式項,單擊“重命名”,將此快捷方式重命名爲適用於快捷方式的內容。
添加註冊表項
-
在“解決方案資源管理器”中選擇 CAB 項目。
-
在“視圖”菜單上指向“編輯器”,然後單擊“註冊表”。
-
在“註冊表編輯器”中,右擊 HKEY_CURRENT_USER,然後單擊快捷菜單上的“新建項”。
-
當“註冊表編輯器”中顯示“新建項”項時,將其重命名爲“SOFTWARE”。
-
右擊此新項,指向“新建”,然後單擊“項”。
-
當“註冊表編輯器”中顯示“新建項”項時,將其重命名爲“MyCompany”。
-
右擊“MyCompany”項,再單擊快捷菜單上的“屬性窗口”。
“名稱”值已更改爲“MyCompany”。
生成 CAB 文件
-
在“生成”菜單上單擊“生成 CABProject”。
- 或 -
在“解決方案資源管理器”中右擊“CABProject”,再單擊“生成”。
-
在“文件”菜單上單擊“全部保存”。
Smartphone 解決方案的 CAB 文件在部署到最終用戶的設備上之前必須進行數字簽名。基於 Windows Mobile 2003SE 和更早版本的 Pocket PC 解決方案不支持數字簽名。有關更多信息,請參見如何:對 CAB 文件進行簽名(設備)。
將 CAB 文件部署到設備上
-
在“Windows 資源管理器”中定位到存儲此解決方案的文件夾。可以在解決方案的“CABProject/Release”文件夾中找到此 CAB 文件。
-
將 CAB 文件複製到與 ActiveSync 4.0 或更高版本連接的設備上。
當用戶在設備上的“資源管理器”中點擊此 CAB 文件名時,Windows CE 將解開該 CAB,並將應用程序安裝到設備上。
有關更多信息,請參見 Smartphone 和 Pocket PC SDK 文檔。
再打完包後,發現程序名不能是中文的,提示inf裏不能爲Unicode,所以如果想打包中文的程序名,可以下載WinCab來修改,也可以直接利用這個軟件來打包CAB 格式的文件