Разработка за Windows Phone 8 на машина без SLAT

Разработката за Windows Phone 8 изглежда логична стъпка за всеки разработчик на C# като се имат предвид следните предимства

  • Това е C# и Visual Studio 🙂
  • Таксата за регистрация е само 19$
  • След покупката на Nokia поне в обозримо бъдеще нещата изглеждат добре

Най-сериозния проблем е подкарването на емулатора за Windows Phone, тъй като той изисква Hyper-V, което автоматично означава, че е нужно Windows 8 или Windows Server 2012.

На Windows 8, за да се инсталира и работи правилно Hyper-V е необходима задължителна хардуерна виртуализация (сравнително достъпно от повечето PC-та), но и SLAT – i5, i7 и само някои i3 процесори. Почти всички Core2 Duo не поддържат тази възможност. Накратко, ако имате лаптоп по-стар от 2 години шансовете са, че няма да може да пуснете Hyper-V на Windows 8.

Какво пробвах и не работеше – всякакви предложени варианти по интернет, виртуални машини локално и в Azure – Hyper-V не може да се стартира, защото hypervisor is already present (абсолютно вярно).

Това, което се оказа решение (доколкото инсталирането на сървърна OS е решение) е да се използва Windows Server 2012 Standard (Foundation не върши работа, тъй като не поддържа Hyper-V). Тук няма нужда от SLAT, а само от хардуерна виртуализация и No Execute Bit.

В случай, че емулатора изкарва съобщение за грешка е нужно да се обнови VS 2012 до последния update (в момента това е 3)

 

Инсталиране Windows 8 Release Preview във виртуална машина

При инсталация на Windows 8 Release Preview на Virtual Box понякога се получава следното:

“Your PC needs to restart”

При Virtual PC резултатът е за съжаление същия. След известно четене в Google видях, че Windows 8 Release Preview има следните изисквания към процесора:

Physical Address Extension (PAE), NX, and SSE2

 

За първото и последното няма какво да се направи, но второто (NX, Execute Disabled) обикновено е опция в BIOS-a. Обнадежден проверих дали това е проблемът при мене, но уви – беше включено. На други места предлагаха от Performance Options->Data Execution Prevention->Turn On DEP for all programs.

При мене и това не се оказа успешно, но в крайна сметка това което имаше резултат е инсталация във VMWare Player (вероятно в комбинация с горните).