Использование Portable Class Libraries c поддержкой Windows Phone 7.5 в Visual Studio 2013

в 16:44, , рубрики: Portable Class Library, Visual Studio, visual studio 2013, windows phone 7, грязный хак, разработка под windows phone, метки: , , ,

Как известно, в Visual Studio 2013 более не поддерживается разработка приложений для Windows Phone 7. В тоже время, только в 13-й версии можно разрабатывать приложения для Windows 8.1. Все бы ничего, если бы отказ от поддержки WP7 не коснулся и Portable Class Libraries(PCL). При первом запуске проекта 13я Visual Studio предлагает сконвертировать кросс-платформенный PCL проект, оставив только поддержку Windows Phone 8.
Не вступая в споры о целесообразности этого решения и мотивации Microsoft, отметим, что у множества разработчиков более или менее ощутимый процент пользовательской базы пользуется Windows Phone 7 устройствами. Одновременно хочется использовать все вкусности, которые предоставляет разработчику новая версия Visual Studio.
Решение проблемы предлагается под катом.

Итак, выхода из сложившейся ситуации два:
1. Принять волевое решение и отказаться от поддержки Windows Phone 7 версии приложения.
2. Поддерживать две ветки PCL библиотек.
Естественно, не одно из этих решение не является оптимальным и несет с собой определенные проблемы.

Как выяснилось, имеется так же «альтернативный» споcоб решения проблемы.
Решение найдено Йоханом Лаанстрой и описано в его личном блоге. Автор озадачился решением проблемы еще во времена, когда Visual Studio 2013 находилась в стадии релиз-кандидата. Решение сводится к правке конфигурационных файлов .NET Framework для PCL библиотек. Как справедливо отмечено в статье, этот “хак” не является официальным решением и вводит Visual Studio в неподдерживаемое состояние. Соответственно, и проблемы это решение может за собой повлечь самые непредсказуемые. От себя могу сказать, что за неделю разработки проблем замечено не было.

Последовательность действий:
1. В папке ...Program Files (x86)Reference AssembliesMicrosoftFramework.NETPortablev4.0ProfileProfile104SupportedFrameworks/ находим конфигурационные XML-файлы “Silverlight 4.xml” и “Windows Phone 7.5.xml”
2. Исправляем в каждом из них значение свойста MaximumVisualStudioVersion с “11.0” на “12.0”.
3. Перезапускаем студию при необходимости. Мне в придачу пришлось перезапустить Resharper в Visual Studio, но мой случай единичный.

Теперь можно продолжать разрабатывать, используя одну версию PCL библиотек. Для разработки Windows Phone 7/8 приложения используется Visual Studio 2012, а для Windows 8 и 8.1 приложений — 2013я версия.

Спасибо за внимание!

Автор: se_mak

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js