原文地址:html
系列地址:http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners框架
Source Code: http://aka.ms/absbeginnerdevwp8 工具
PDF Version: http://aka.ms/absbeginnerdevwp8pdf測試
若是您回想一下C#基礎系列(C# Fundamentals series),C#編譯器編譯項目中的代碼以建立一個.Net程序集。最終結果一般(至少在簡單的控制檯應用程序的狀況下)是一個後綴名爲".exe"可執行文件。雖然在Visual Studio中咱們均與應用程序的調試版本打交道,經過將解決方案配置更改成發佈(Release),只要用戶計算機上安裝了相同版本的.Net框架運行時,咱們就能夠建立適合發佈到另外一個用戶計算機上的應用程序版本。操作系統
在本課中,我將討論如何將咱們構建的應用程序部署到運行Windows Phone 8操做系統的物理設備上。到目前爲止,咱們僅將應用程序部署到手機模擬器上。編譯和部署步驟對咱們來講是自動化的,咱們並不知道程序如何被打包並安裝到模擬器上。咱們須要理解應用程序被打包的方法,由於無疑咱們須要將應用程序部署到物理的手機設備上以進行測試,而且咱們須要將應用程序打包以即可以將它們提交至Windows應用商店進行審覈、下載或銷售。設計
所以咱們本課的計劃是:3d
每次當您按鍵盤上的F5鍵或工具欄上的運行按鈕以運行應用程序時,Visual Studio都會建立應用程序的調試版本。若是您回想一下C#基礎系列,它將建立一個Bin\Debug文件夾以存放.NET程序集和任何運行應用程序所需的其餘文件。這就是PetSounds應用程序的Bin\Debug文件夾:調試
在這裏有.NET程序集PetSounds.dll,一個能夠忽略的文件PetSounds.pdb(它用於Visual Studio調試器和應用程序運行版本之間的協調)。還有一些文件夾與Visual Studio項目中的文件夾相匹配,好比Assets文件夾,用於存放AppResources.resx西班牙語版本的es文件夾以及Properties文件夾。接着還有一個AppManifest文件和一個PetSounds_Debug_AnyCPU.xap文件。xml
這個.xap文件很大(6MB)。我碰巧知道這個文件後綴表示它是一個部署包。它是一個包含全部文件和配置的文件,被用於將應用程序部署到Windows Phone 8操做系統。
讓咱們再次找點樂子!我將該文件拷貝到桌面,右鍵單擊文件並選擇複製。
我右鍵單擊桌面並選擇複製。
一旦文件出如今個人桌面上,我右鍵單擊它並選擇重命名。
我將文件後綴名從.xap更改成.zip。Windows提示我可能會損壞文件:
這是隻是一個拷貝,而且Visual Studio在每次部署時都會建立一個新的.xap,因此我選擇對話框中的是選項。
如今文件看起來和我機器上的其餘.zip文件同樣。
若是在Windows資源管理器中選擇文件,即便我沒有選擇提取,我也能夠看到其中的內容:
原來這個.xap文件其實是一個.zip文件,它本質上包含咱們在項目的\Bin\Debug文件夾下看到的文件。進入/Assets子文件夾:
最終進入/Audio和/Animals文件夾,在這裏我看到了在前幾節課上咱們拷貝到項目中的.wav文件
讓咱們回到.zip文件的根目錄,我想查看AppManifest.xaml和WMAppManifest.xml文件中的內容,我右鍵單擊WMAppManifest.xml文件:
您可能被詢問在Windows 8中用哪一個應用程序打開這個文件。選擇記事本。
在記事本中您能夠看到WMAppManifest.xml的原始內容。它是XML格式,而且內容不少。在Visual Studio中該文件的複雜性經過一個友好的「設計器」被隱藏起來。Visual Studio中的一個頁面限制了咱們能夠對該文件進行的更改。
真正的問題是:「這個文件存在的目的是什麼?」
WMAppManifest.xml的目的是將您的應用程序介紹給手機。它告訴手機使用哪一個圖像做爲開始屏幕和應用頁面的磁貼。它告訴手機咱們但願使用哪些功能和咱們能夠支持哪些語言。它告訴手機應用的名稱是什麼,應用程序是哪個版本,咱們支持哪些屏幕分辨率等內容。它負責把咱們的應用程序集成到Windows 8操做系統和應用程序的生態系統。
本課我想作的最後一件事是將應用程序部署到個人Lumia 920。本課的其他部分假設您已經有一個Windows Phone開發中心的會員。每一年的費用是99美圓。
首先,我用手機附帶的USB線把電話插進個人電腦。我以前爲了傳輸音樂或爲手機充電已經屢次這樣作過,可是歷來沒有爲了部署一個應用程序而這樣作。
在Visual Studio中,我使用運行按鈕旁的向下箭頭將設置從在模擬器中調試更改成在設備中調試。
接着,我單擊工具欄上面的運行按鈕,可是會出現一個錯誤:
(未能鏈接到設備,由於它已由開發人員鎖定。有關開發人員解鎖的詳細信息,請訪問http://go.microsoft.com/fwlink/?LinkId=195284。)
所以,我須要作的第一件事是解鎖手機以用於開發。使用如下鏈接以獲取更多信息:
http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/ff769508(v=vs.105).aspx
我將搜索Windows Phone開發人員註冊應用程序(Windows Phone Developer Registration),它隨Windows Phone 8 API一塊兒安裝在個人電腦上。
在Windows 8中,轉到搜索超級按鈕(Search charm):
並輸入」Regi」
這足以找到Windows Phone開發人員註冊應用程序:
運行該應用程序。它將帶您返回桌面並顯示如下對話框,正如您所看到的,它試圖肯定您手機的狀態,可是鎖屏界面是鎖住的。
我將鎖屏界面解鎖並單擊重試按鈕。
我單擊註冊按鈕,它讓我登陸到個人微軟帳戶。
請注意,因爲某些緣由,它老是要求我登陸兩次。若是您遇到相似的行爲,請不要慌張。您一般能夠在第二次嘗試時進入。
稍等片刻,我將收到一個確認:手機被成功解鎖以用於開發。
我能夠經過登陸如下網址進行確認:
我剛註冊的手機在這裏正確顯示。
您將注意到手機的名稱:」 Bob Tabor’s Phone」,我曾在Windows資源管理器中經過右鍵單擊手機並選擇「重命名」更改過手機名稱。這將容許我測試多個電話並將它們區分開來。
如今我已經註冊完手機,我應該能夠將應用部署到手機上了。
可是
(未能鏈接到設備,由於它被密碼鎖定。)
我必須解鎖設備的鎖屏界面並再次測試:
在克服全部困難後,我終於看到PetSounds應用程序在我手機上運行了。
我不只可以看到它並且它可以正常工做。我能夠用鴨子的嘎嘎聲去打攪個人小孩和寵物了!
爲了退出調試,可使用Visual Studio工具欄上的中止按鈕。
即便我中止設備上的應用程序的調試,應用程序還在設備上,即便我從計算機上拔下設備,我仍然能夠運行它。每次進行調試,與使用模擬器時同樣,它將會把應用程序的最新版本部署至物理設備。
在繼續以前,您可能會看到以下的消息:
(不能安裝應用程序。本手機已達到開發人員應用程序的最大數量。請卸載應用程序並重試。)
顯然,您能夠部署到手機上的應用程序有數量的限制。這個數量限制爲10。若是出現這種狀況,您能夠卸載一個或多個開發者應用程序,方式和您卸載普通應用程序相同,即按住磁貼並選擇卸載。
假設因爲某種緣由您須要註銷用於開發的手機,您能夠從新運行Windows Phone開發者註冊工具,它將識別出手機被解鎖用於開發並提供一個選項以註銷手機:
(狀態:被識別的Windows Phone 8設備。本設備當前被解鎖用於開發。單擊註銷按鈕以鎖定手機。)
最後,正如我較早前提到的,在註冊手機用於開發並部署應用到手機以進行測試前,或隨後在市場銷售您的應用程序,您須要成爲Windows Phone開發中心的會員。若是您直接從微軟購買,每一年的費用是99美圓。
然而還有第二個選項。諾基亞有一個針對Lumia系列的高級開發者計劃,它不只提供一個Windows Phone開發中心的會員資格,還能提供Telerik公司的Rad Controls for Windows Phone(一組針對Windows Phone開發的控件),Buddy.com的會員和當您在開發或部署應用程序過程當中遇到問題時可使用的兩個諾基亞技術支持。我參與了這個計劃而且它工做良好。
http://www.developer.nokia.com/Developer_Programs/Lumia_developer_program.xhtml
綜上所述,本課的重點是部署包的組成,WMAppManifest.xml文件的目的,部署到物理手機設備以便在Visual Studio中進行調試。咱們討論了註冊您的物理設備並對其進行解鎖以將開發者應用程序發佈到該設備上,以及如何獲取一個Windows Phone開發中心的帳號。