Как сохранить код для двух SDK версий Windows Phone - PullRequest
0 голосов
/ 04 ноября 2011

Я создаю приложение для Windows Phone SDK 7.0 и 7.1, я хочу иметь некоторые дополнительные функции для 7.1, но я хочу сохранить только одну кодовую базу для обоих, и иметь только некоторый код, отображаемый, если телефон пользователя 7.1.

Я читал о посте Шона Вильдермута: http://wildermuth.com/2011/08/23/Maintaining_a_Project_with_Two_Windows_Phone_Versions. Но я не уверен, как это сделать. «Во-первых, я взял свой оригинальный проект и создал две папки решений и создал проекты 7.1, как показано здесь»упоминается в посте.

Может ли кто-нибудь помочь?или предложить другие идеи?

Спасибо.

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

Идеальным решением являются директивы препроцессора

0 голосов
/ 04 ноября 2011

[Обновлено 05.11.2011: удалена устаревшая информация о торговой площадке. Спасибо за обновленную информацию @johnforrest]

Чтобы сделать то, что описывает Шон, возьмите существующее решение с существующими проектами 7.0. Добавьте папку решения и назовите ее «7.0». Переместите существующие проекты 7.0 в эту папку решения. Создайте другую папку решения с именем «7.1». Для каждого проекта в папке решения 7.0 создайте новый соответствующий проект в папке решения 7.1. Это Шони PhonyTools.7.1 и так далее. Теперь следуйте его указаниям по заполнению проектов 7.1 связанными файлами, которые связаны с проектами 7.0.

Я считаю связанные файлы благословением и проклятием. Если вы откроете связанный файл в одном проекте и отредактируете его, Visual Studio не всегда будет знать, что другой проект, содержащий связанный файл, необходимо перестроить. В последнее время я обнаружил, что если я не забуду открыть связанный файл в другом проекте, я получу предупреждение о том, что файл открыт в другом проекте, но VS обнаружит, что файл изменился, и перестроит другой проект. .

Директивы препроцессора, предложенные @KevinDTimm, сами по себе не решают проблему, поскольку вам все еще нужны два разных проекта для проектов двух разных типов (приложения или библиотеки 7.0 и 7.1). Кроме того, разные версии приложений будут ссылаться на разные соответствующие версии сборок.

Наконец, пока мы обсуждаем условную компиляцию, не забывайте атрибут Conditional , который часто является гораздо лучшим решением, чем использование директив препроцессора. Билл Вагнер дает хорошее описание достоинств атрибута [Условный] в Effective C #, 2-е изд., Пункт 4, с. 20. Наслаждайтесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...