1. 程式人生 > >如何在VMware中安裝Windows Phone SDK 8.0 (支援模擬器除錯)

如何在VMware中安裝Windows Phone SDK 8.0 (支援模擬器除錯)

轉自:http://www.cnblogs.com/stg609/p/3631392.html

相信很多開發者目前的系統還是Win7或Mac,一般不會為了開發某個程式而重灌系統,所以我們就需要用到VMware這類的虛擬機器來模擬預期的開發環境。在開始介紹前,給大家說明下我當前的軟硬體環境,本文所講的內容適用於此環境。

  軟體環境:Windows 7 旗艦版 (x64)、VMware Workstation 10,硬體環境:Xeon CPU E3 1230 (4核)。

簡介

  想要安裝 Windows Phone SDK 8.0,64位處理器、4G 記憶體、Windows 8 64位作業系統(任意版本)是必須要滿足的基本條件,開發完後可以使用在微軟開發者中心註冊過的 Windows Phone 8手機進行除錯。如果想要使用 Windows Phone 模擬器直接除錯,那麼CPU還必須支援二級地址轉換(SLAT,Second Level Address Translation)、作業系統必須是專業版或更高的版本。

準備環境

  按照上面講的要求進行自檢。

  同時檢查是否支援SLAT

  在微軟官方下載Coreinfo(地址見文末)並解壓,然後用管理員身份執行命令提示符(開始選單->所有程式->附件->命令提示符->右鍵“以管理員身份執行”)。

並在命令提示符中輸入 “Coreinfo安裝路徑\Coreinfo.exe -v”。intel的處理器,顯示為EPT(Extended Page Tables)。AMD處理器,顯示為NPT(Nested Page Tables)或RVI(Rapid Virtualization Indexing)。如果CPU支援SLAT,那麼你會看見“EPT *”的字樣,否則看到的是“EPT -”。

在VMware中新建虛擬機器

  使用自定義安裝,除了個別的需要根據下面圖片所示進行設定外,其餘一路預設安裝就可以了。

 

選擇windows 8 x64系統

 

至少選擇2個CPU

至少4G的記憶體

  在啟動虛擬機器前,設定CPU的虛擬化引擎為 “Intel VT-x/EPT 或 AMD-V/RVI”,同時讓CD/DVD指向Windows 8 專業版或更高版的iso檔案。

安裝Windows 8 x64 Pro

 

  檢查此係統的Hyper-V是否已經安裝

  使用“Win +X”快捷鍵撥出“程式和功能”面板,選擇“啟用或關閉 Windows 功能”,可以看見Hyper-V平臺選項為灰色,滑鼠移上去顯示“無法安裝Hyper-V, 某個虛擬機器監控程式正在執行”。

  我們先不去理會這個問題,直接進入下一步。

下載安裝Windows Phone SDK 8.0

  在官方下載頁面下載SDK後安裝,因為我下載的是iso版本,該版本貌似md5校驗碼有問題,所以在安裝完後會提示“Visual C++ 2012 x64 Debug Runtime 無法找到元素”。不過不影響我開發Windows Phone App,也就沒去細究。

提示Hyper-V已經啟用

根據要求重啟後,完成安裝

  安裝成功,並提示Hyper-V也安裝成功,我們再看一下系統的Hyper-V選項,發現已經全部安裝好了。

執行Visual Studio

  官網申請序列號

  在執行Visual Studio Express 2012 For Windows Phone的時候,會要求輸入序列號,這個只需要點選旁邊的“線上註冊”字樣註冊就可以收到帶有序列號的郵件。

  新建第一個Windows Phone 8 App

選擇Windows Phone App專案模板

選擇目標系統為Windows Phone OS 8.0

 

選擇模擬器(Emulator WVGA 512M),點選執行

  使用Windows Phone模擬器執行,提示“The Windows Phone Emulator wasn't able to create the virtual machine. Generic failure”。

  下面將通過修改vmx檔案來解決這個問題。

修改vmx檔案

  vmx是VMware的配置檔案。先關閉當前的虛擬機器,然後進入剛建立的虛擬機器所對應的目錄,找到“.vmx”結尾的檔案,使用記事本或其它編輯器工具開啟,在檔案末加入下列語句:

vmx檔案

hypervisor.cpuid.v0 = "FALSE"
mce.enable = "TRUE"

Hyper-V會檢查當前是否執行在虛擬機器裡,只有當不是的時候才會正常執行。hypervisor.cpuid.v0 = "FALSE" 這句話就是為了繞過這個檢查。

  儲存後,重新開啟虛擬機器。這次執行專案時,會提示“Do you want to configure the emulator to connect to the Internet?”,意思就是網路連線丟失,我們選擇“Yes”,讓模擬器配置網路連線。

  現在你已經可以正常執行Windows Phone 模擬器了。Cheers!

這個過程有點長,耐心等待一會兒

 

這就是剛剛建立的應用

  回過頭來,看一下網路連接面板,會發現多了些奇怪的連線。這些就是Hyper-V建立的虛擬交換機連線。

  如果禁用了其中的 vEthernet(Internal Ethernet Port Windows Phone Emulator Internal),就會導致執行模擬器時提示“The emulator couldn't determin the host IP address, which is used to communicate with the guest virtual machine”。因此,該連線對於執行模擬器來說是必須的。

其它問題

  如果發些自己還是啟動不了模擬器,請檢查下自己的Hyper-V交換機是否已經建立。交換機配置中至少包含“Windows Phone Emulator Internal Switch”這個交換機。

Hyper-V 管理器

正常的Hyper-V 管理器

正常的虛擬交換機管理器

  如果沒有找到這個虛擬交換機,也不用心急。通過“新建虛擬網路交換機”這個選項,輸入“Windows Phone Emulator Internal Switch”,選擇“內部”就可以自己建立一個了,效果是一樣的。

快速問答

  1. 為什麼要x64位?

  因為Hyper-V只能在64位處理器下工作

  2. 為什麼要支援SLAT?

  因為Hyper-V需要用到它來提高虛擬地址和實體地址轉換的效率。

  3. 為什麼要使用Hyper-V?

  因為Windows Phone 8 模擬器需要執行在Hyper-V上。

  4. 什麼是Hype-V?

  Windows 8 的虛擬化技術。

參考資源