Библиотеки переносных классов
Проект Переносимая библиотека классов позволяет писать работающие на нескольких платформах .NET Framework управляемые сборки и выполнять их построение. Можно создавать классы, содержащие код, который требуется использовать во многих проектах (например, код совместно используемой бизнес-логики), и затем ссылаться на эти классы из проектов разных типов.
Используя проект Переносимая библиотека классов, можно выполнять построение переносимых сборок, которые без внесения изменений работают на платформах .NET Framework, Silverlight, Windows Phone 7 и Xbox 360. Без проекта Переносимая библиотека классов необходимо выбрать в качестве целевой какую-либо одну платформу и затем вручную переделать библиотеку классов для других платформ. Проект Переносимая библиотека классов поддерживает подмножество сборок из этих платформ и предоставляет шаблон Visual Studio, с помощью которого можно выполнять построение сборок, запускающихся на этих платформах без внесения изменений.
Предварительные требования
Для создания проекта Переносимая библиотека классов необходимо установить следующие компоненты в указанном порядке.
сборкам.
В проекте Переносимая библиотека классов доступны следующие сборки.
mscorlib.dll
System.dll
System.Core.dll
System.Xml.dll
System.ComponentModel.Composition.dll
System.Net.dll
System.Runtime.Serialization.dll
System.ServiceModel.dll
System.Xml.Serialization.dll
System.Windows.dll (из Silverlight)
Однако не все эти сборки поддерживаются во всех платформах. В проекте Переносимая библиотека классов указываются целевые платформы, а в проекте пользователя делаются ссылки только на сборки, поддерживаемые для этих платформ. При попытке сослаться на сборку, не поддерживаемую целевыми платформами, Visual Studio предупреждает о несовместимости. Основные сборки (mscorlib.dll, System.dll, System.Core.dll и System.Xml.dll) поддерживаются на всех платформах.
В следующей таблице перечислены сборки, поддерживаемые на доступных платформах.
Функция |
сборкам. |
.NET Framework 4 |
Silverlight |
Windows Phone 7 |
Xbox 360 |
---|---|---|---|---|---|
Ядро |
mscorlib.dll, System.dll, System.Core.dll, System.Xml.dll |
Да |
Да |
Да |
Да |
Managed Extensibility Framework (MEF) |
System.ComponentModel.Composition.dll |
Да |
Да |
Нет |
Нет |
Сетевая библиотека классов (NCL) |
System.Net.dll |
Да |
Да |
Да |
Нет |
Сериализация |
System.Runtime.Serialization.dll |
Да |
Да |
Да |
Нет |
Windows Communication Foundation (WCF) |
System.ServiceModel.dll |
Да |
Да |
Да |
Нет |
XML-сериализация |
System.Xml.Serialization.dll |
Да |
Да |
Да |
Нет |
Поддержка моделей представлений |
System.Windows.dll (из Silverlight) |
Нет |
Да |
Да |
Нет |
Проекты Переносимая библиотека классов предназначены для различных сочетаний платформ. В следующей таблице указаны функции, поддерживаемые для различных сочетаний платформ.
Платформы |
Поддержка |
---|---|
Silverlight и Windows Phone 7 |
Все функции, кроме MEF |
.NET Framework 4 и Silverlight |
Все функции, кроме поддержки моделей представлений |
.NET Framework 4 и Windows Phone 7 |
Все функции, кроме поддержки моделей представлений и MEF |
.NET Framework 4, Silverlight и Windows Phone 7 |
Все функции, кроме поддержки моделей представлений и MEF |
Xbox 360 и любая другая платформа |
Только базовые функции |
Поиск поддерживаемых членов в справочной документации
Члены, поддерживаемые проектом Переносимая библиотека классов, можно найти в справочных разделах для библиотеки классов .NET Framework. В таблице членов для класса рядом с поддерживаемыми членами отображается следующий значок Переносимая библиотека классов.
Можно также обратиться к подразделу Сведения о версиях справочного раздела в отношении примечания с указанием о поддержке того или иного типа или участника в проекте Переносимая библиотека классов.
Поддержка шаблона модели представлений
При создании приложения для Silverlight и Windows Phone 7 можно реализовать в решении шаблон модели представлений. Классы для реализации этого шаблона находятся в сборке System.Windows.dll из Silverlight. Сборка System.Windows.dll не поддерживается при создании проекта Переносимая библиотека классов, предназначенного для платформы .NET Framework 4 или Xbox 360.
Эта сборка содержит следующие классы:
System.Collections.ObjectModel.ReadOnlyObservableCollection<T>
System.Collections.Specialized.NotifyCollectionChangedAction
System.Collections.Specialized.NotifyCollectionChangedEventArgs
System.Collections.Specialized.NotifyCollectionChangedEventHandler
Платформа .NET Framework 4 также содержит эти классы, но они реализованы в других сборках, а не в сборке System.Windows.dll. Для использования этих классов в проекте Переносимая библиотека классов необходимо ссылаться на сборку System.Windows.dll, а не на сборки, перечисленные в документации на платформу .NET Framework 4.
Создание проекта Переносимая библиотека классов
Для создания проекта Переносимая библиотека классов следует создать новый проект в Visual Studio 2010 и выбрать шаблон Переносимая библиотека классов в Visual C# или Visual Basic. Если этого шаблона нет, убедитесь, что установлены средства Portable Library Tools.
Выбор целевых платформ
По умолчанию проект Переносимая библиотека классов предназначен для следующих платформ:
.NET Framework 4
Silverlight 4
Silverlight для Windows Phone 7
Ссылки в проекте делаются только на сборки, поддерживаемые этими платформами. Чтобы выбрать целевые платформы, в окне Обозреватель решений щелкните правой кнопкой мыши имя проекта Переносимая библиотека классов и выберите Свойства.
На странице свойств проекта указываются платформы, предназначенные в настоящее время для проекта.
Для добавления или удаления целевых платформ щелкните Изменить.
При изменении целевых платформ сборки, на которые сделаны ссылки в проекте, изменяются, чтобы соответствовать набору сборок, поддерживаемых для сделанного выбора. Если в проекте имеются ссылки на сборки, которые не поддерживаются одной из выбранных платформ, необходимо удалить ссылку на сборку или изменить целевые платформы. В обозревателе решений неподдерживаемые сборки отмечаются восклицательным знаком (!). На следующей иллюстрации показано предупреждение для сборок, которые не поддерживаются при добавлении платформы Xbox 360 в целевые платформы.
Использование Переносимая библиотека классов
После построения проекта Переносимая библиотека классов добавьте ссылку на него из других проектов, в которых предусмотрено использование проекта Переносимая библиотека классов. Можно сделать ссылку на проект или на конкретные сборки, содержащие классы, к которым требуется доступ.
Создание зависимости
Чтобы запустить приложение Переносимая библиотека классов, на компьютере должно быть установлено обновление для платформы .NET Framework 4. Это обновление автоматически устанавливается с Visual Studio 2010 с пакетом обновления 1 (SP1). Поэтому запустить приложение Переносимая библиотека классов на компьютере, на котором оно развернуто, можно без внесения дополнительных изменений. Чтобы запустить это приложение на другом компьютере, можно установить обновление вручную.
При развертывании приложения .NET Framework 4, в котором имеется ссылка на сборку Переносимая библиотека классов, необходимо задать зависимость от обновления платформы .NET Framework 4. Задание зависимости обеспечивает установку обновления с приложением.
Чтобы создать зависимость с развертыванием ClickOnce, в окне Обозреватель решений выберите узел проекта, который требуется опубликовать. (Это проект, в котором имеется ссылка на проект Переносимая библиотека классов.) В меню Проект выберите Свойства, а затем перейдите на вкладку Публиковать. На странице Публикация щелкните Необходимые компоненты. В качестве необходимого компонента выберите обновление платформы .NET Framework 4.
Чтобы создать зависимость с проектом установки, в окне Обозреватель решений выберите узел проекта, который требуется опубликовать. В меню Проект выберите Свойства, а затем щелкните Необходимые компоненты. В качестве необходимого компонента выберите обновление платформы .NET Framework 4.
Дополнительные сведения о развертывании приложений .NET Framework см. в разделе Руководство по развертыванию .NET Framework для разработчиков.
Развертывание с Silverlight
При развертывании сборки Переносимая библиотека классов с приложением, основанным на Silverlight, следует в качестве минимальной версии среды выполнения, необходимой для данного приложения, задать версию 4.0.60129.0 или выше. Значение параметра minRuntimeVersion задается вводом строки <param name="minRuntimeVersion" value="4.0.60129.0" /> на веб-странице, на которой размещается приложение, основанное на Silverlight.
<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2,"
type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/SilverlightApplication.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.60129.0" />
<param name="autoUpgrade" value="true" />
<a href="https://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0"
style="text-decoration:none">
<img src=https://go.microsoft.com/fwlink/?LinkId=161376
alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
<iframe id="_sl_historyFrame"
style="visibility:hidden;height:0px;width:0px;border:0px">
</iframe>
</div>
Различия в API в Переносимая библиотека классов
Для обеспечения совместимости сборок Переносимая библиотека классов на всех поддерживаемых платформах некоторые члены в Переносимая библиотека классов немного изменены. Сведения о том, какие члены были изменены и как, см. в разделе Отличия API в библиотеке переносных классов.
См. также
Другие ресурсы
Отличия API в библиотеке переносных классов
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Май 2011 |
Добавлены сведения о поддержке шаблона модели представлений и создании зависимостей. |
Улучшение информации. |
Март 2011 |
Добавлен раздел. |
Улучшение информации. |