相信不少開發者目前的系統仍是Win7或Mac,通常不會爲了開發某個程序而重裝系統,因此咱們就須要用到VMware這類的虛擬機來模擬預期的開發環境。在開始介紹前,給你們說明下我當前的軟硬件環境,本文所講的內容適用於此環境。windows
軟件環境:Windows 7 旗艦版 (x64)、VMware Workstation 10,硬件環境:Xeon CPU E3 1230 (4核)。api
想要安裝 Windows Phone SDK 8.0,64位處理器、4G 內存、Windows 8 64位操做系統(任意版本)是必需要知足的基本條件,開發完後可使用在微軟開發者中心註冊過的 Windows Phone 8手機進行調試。若是想要使用 Windows Phone 模擬器直接調試,那麼CPU還必須支持二級地址轉換(SLAT,Second Level Address Translation)、操做系統必須是專業版或更高的版本。網絡
按照上面講的要求進行自檢。編輯器
同時檢查是否支持SLAT工具
在微軟官方下載Coreinfo(地址見文末)並解壓,而後用管理員身份運行命令提示符(開始菜單->全部程序->附件->命令提示符->右鍵「以管理員身份運行」)。ui
並在命令提示符中輸入 「Coreinfo安裝路徑\Coreinfo.exe -v」。intel的處理器,顯示爲EPT(Extended Page Tables)。AMD處理器,顯示爲NPT(Nested Page Tables)或RVI(Rapid Virtualization Indexing)。若是CPU支持SLAT,那麼你會看見「EPT *」的字樣,不然看到的是「EPT -」。spa
使用自定義安裝,除了個別的須要根據下面圖片所示進行設置外,其他一路默認安裝就能夠了。操作系統
選擇windows 8 x64系統3d
至少選擇2個CPU調試
至少4G的內存
在啓動虛擬機前,設置CPU的虛擬化引擎爲 「Intel VT-x/EPT 或 AMD-V/RVI」,同時讓CD/DVD指向Windows 8 專業版或更高版的iso文件。
檢查此係統的Hyper-V是否已經安裝
使用「Win +X」快捷鍵呼出「程序和功能」面板,選擇「啓用或關閉 Windows 功能」,能夠看見Hyper-V平臺選項爲灰色,鼠標移上去顯示「沒法安裝Hyper-V, 某個虛擬機監控程序正在運行」。
咱們先不去理會這個問題,直接進入下一步。
在官方下載頁面下載SDK後安裝,由於我下載的是iso版本,該版本貌似md5校驗碼有問題,因此在安裝完後會提示「Visual C++ 2012 x64 Debug Runtime 沒法找到元素」。不過不影響我開發Windows Phone App,也就沒去細究。
提示Hyper-V已經啓用
根據要求重啓後,完成安裝
安裝成功,並提示Hyper-V也安裝成功,咱們再看一下系統的Hyper-V選項,發現已經所有安裝好了。
官網申請序列號
在運行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是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 的虛擬化技術。
Windows SDK 8.0 下載地址,ISO地址可在該頁面內找到