Практическое руководство. Создание пакета средств разработки программного обеспечения
Пакет средств разработки программного обеспечения (SDK) коллекции файлов, Visual Studio выполняет как один элемент ссылки.В диалоговом окне Диспетчер ссылок перечислены все пакет SDK, которые относятся к проекту, вызывает диалоговое окно Диспетчер ссылок.При добавлении в проект SDK, все содержимое доступны через IntelliSense, Панель элементов конструкторы, обозреватель объектов, построение, развертывание, отладка и упаковку.
2 Типа пакет SDK.
Пакет SDK платформы компоненты для разработки приложения для платформы.Например, необходимо, чтобы начинается Windows 8 SDK приложения Магазина Windows.
Пакет SDK расширения дополнительные компоненты, которые расширяют структуру, но не требуются для разработки приложений для этой платформы.
В следующих разделах описываются общей инфраструктуры пакет SDK и созданию платформа SDK и расширение SDK.
Моникер платформы целевого объекта
Пакет SDK платформы
Пакет SDK расширения
Моникер платформы целевого объекта
Visual Studio 2012 поддерживает 2 новых свойств.
Идентификатор (TPI) платформы целевого объекта: Допустимые значения этого свойства состоит из различных версий, для которых можно разрабатывать программного обеспечения.Пример платформы Windows.
Версия платформы (TPV) целевого объекта: Это свойство определяет версию платформы целевого объекта.Например, для Windows 8, TPV 8,0 и TPI Windows.
Вместе эти формы 2 свойств моникер (TPM) платформы целевого объекта, который формирует основу для Windows 8 и SDK на инфраструктура.Например, платформенный доверенный модуль для Windows 8, version=8.0 "Windows".
Пакет SDK платформы
Требуется для начала пакет SDK платформы приложения для платформы.Например, необходимо, чтобы начинается Windows 8 SDK приложения для Windows 8.
Установка
Платформа весь пакет SDK будьте номеру в HKLM \ программное обеспечение \ Microsoft \ Microsoft пакет SDK \ [TPI] \ v \ @InstallationFolder TPV [] = [корень SDK].Соответственно, Windows 8 SDK устанавливается в программном обеспечении HKLM \ \ Microsoft \ Microsoft sdks \ Windows \ v8.0.
Макет
Пакет SDK платформы имеют следующую структуру:
\[InstallationFolder root]
SDKManifest.xml
\References
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Узел |
Описание |
---|---|
Папка "Ссылки" |
Содержит бинарный, содержащие API, может быть написано относительно.Это может включать файлы или сборки метаданных Windows (WinMD). |
Папка DesignTime |
Содержит файлы, необходимые только во время предварительного выполнения и отладки.Это может включать XML-документов, библиотеки, заголовки, бинарный во время разработки элемента, артефакты MSBuild и т д
Внимание
Xml-документов, в идеальном случае были бы помещаются в папку \ DesignTime, но документы XML для ссылок продолжат размещаться рядом с файлом справочным в Visual Studio 2012.Например, документ XML для ссылки на \ \ конфигурация [] \ [свод] \ sample.dll будьте ссылку, \ \ конфигурация [] \ [свод] \ sample.xml и для версии этот документ будьте ссылку, \ \ конфигурация [] \ [свод] \] [языкового стандарта \ sample.xml.
|
Папка конфигурации |
Могут быть только 3 папки: отладка, компания и CommonConfiguration.Авторы SDK могут задавать их в файлы CommonConfiguration. если тот же набор файлов должен SDK, независимо от конфигурации, объект-получатель SDK будет целевой объект. |
Папка архитектуры |
Любой поддерживаемой папку архитектуры могут существовать.Visual Studio 2012 поддерживает следующие архитектуры: x86, x64, ARM и нейтральный.Примечание. Сопоставления Win32 в x86 и сопоставление с использованием нейтральному. В .NET Framework 4.5, MSBuild жестко задаватьо, чтобы отображать только в CommonConfiguration \ \ нейтральный пакет SDK для платформы. |
SDKManifest.xml |
Этот файл описание должно использовать Visual Studio SDK.Просмотрите манифест пакета SDK для Windows 8:
DisplayNameЗначение, обозреватель объектов отображаются в списке просмотреть.
PlatformIdentityНаличие данного атрибута указывает Visual Studio SDK и MSBuild, что платформа SDK и что добавлены ссылки из нее не должны быть скопированы локально.
TargetFrameworkЭтот атрибут используется Visual Studio, чтобы убедиться, что только проекты, целевой объект те же платформы в соответствии с значением этого атрибута может использовать SDK.
MinVSVersionЭтот атрибут используется Visual Studio, чтобы использовать только пакет SDK, применимых к нему.
СсылкиЭтот атрибут должен быть определен только для тех ссылок, которые содержат элементы управления.Сведения о том, как определить, содержит ли ссылка на элементы управления, см. ниже.
|
В Visual Studio
Ссылка диспетчер будьте выглядеть целевой объект платформа моникер (TPM) и затем заменить значения свойства в HKLM \ программное обеспечение \ Microsoft \ Microsoft пакет SDK \ [TPI] \ v] [TPV \ @InstallFolder SDK] = [корневой каталог диска для определения расположения пакета SDK платформы.Диспетчер ссылок будет затем:
Открытие манифест пакета SDK для определения, является ли платформа SDK применима к версии Visual Studio, в которой был вызван диспетчер ссылок и ли платформа SDK применима согласно прицеленному .NET Framework проекта, диспетчер ссылок.Если платформа SDK применима на обоих числа, диспетчер ссылок будет использовать свойство идентификатора платформы целевого объекта для имя вкладки, в которой перечислены платформу SDK ссылается.Если платформа SDK не находится на диске, вкладку будет по-прежнему отображаться, но средняя область появится сообщение "[] TPI SDK не найдено на компьютере".
Создание списка всех связей, определенных в корень InstallFolder [] \ \ \ ссылками CommonConfiguration нейтральной папкой в TPI [] | Основная вкладка.
Пользователь может добавить ссылки в платформе SDK в проект, и их использование в коде по мере их все сборки или WinMD.
Пакет SDK расширения
Пакет SDK расширения расширяют платформу, но не требуются для разработки приложений для этой платформы.Например, карт Bing и пакет SDK live Windows расширения Windows 8, но не обязательно всеми разработчиками для данной операционной системы.
Установка
Пакет SDK расширения можно располагать в одно из мест: 4
\ Program Files \ Microsoft пакет SDK \ [TPI] \ v] [TPV \ ExtensionSDKs
\ \ Пользователь [имя пользователя] \ AppData \ local \ Microsoft \ TPI пакет SDK [] \ v] [TPV \ ExtensionSDKs
В файле проекта как <PropertyGroup><SDKReferenceDirectoryRoot>dir1;dir2</SDKReferenceDirectoryRoot></PropertyGroup>, где dir1 и dir2 определяют все 2 места на диске
HKLM \ программное обеспечение \ Microsoft \ Microsoft пакет SDK \ [TPI] \ v [TPV] \ ExtensionSDKs \ [SDKName] \ [SDKVersion] = [@default \ SDK корень] [,] [SDK корневой путь к пакету SDK] \] [SDKName \] [SDKVersion \
Для первых 3 расположений отсутствуют разделы реестра не требуются.Можно просто размещение расширение SDK в компьютера, определенные пользователем, или пользовательском местоположении, и Visual Studio просто использовало SDK.Если ни один из этих механизмов подходит, можно задать произвольное расположение SDK с помощью пути реестра в четвертом расположении.
Макет
Пакет SDK расширения будут иметь следующий макет:
\[ExtensionSDKs root]
\[SDKName]
\[SDKVersion]
SDKManifest.xml
\References
\[config]
\[arch]
\Redist
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Узел |
Описание |
---|---|
\] [SDKName \ [SDKVersion] |
Формирует идентификатор расширения SDK.Другими словами, имя и версию расширения SDK являются производными от соответствующих имен папок в пути к корневому каталогу SDK.MSBuild использует этот идентификатор для поиска SDK на диске и отображения Visual Studio этот идентификатор в окне Свойства и диспетчере ссылки. |
Папка "Ссылки" |
Состоит из бинарный, содержащие API, может быть написано относительно.Это может быть файлы или сборками (WinMD) метаданных Windows. |
Папку redist |
Состоит из файлов, которые необходимы для выполнения и отладки и необходимо получить упакованными в составе приложения пользователя.Правила применяются: 2
|
Папка DesignTime |
Состоит из файлов, только необходимое время предварительного выполнения и отладки и не могут быть упакованы в составе приложения пользователя.Это может быть XML-документов, библиотеками, заголовками, бинарный во время разработки элемента, артефактами MSBuild и т д
Внимание
Любое SDK, предназначен для использования собственным проектом должно иметь файл SDKName PROPS.В следующем коде приведен пример этого типа файла.
Примечание
Xml-документов, в идеальном случае были бы помещаются в папку \ DesignTime, но документы XML для ссылок продолжат размещаться рядом с файлом справочным в Visual Studio 2012.Например, документ XML для ссылки на \ \ конфигурация [] \ [свод] \ sample.dll будьте ссылку, \ \ конфигурация [] \ [свод] \ sample.xml и для версии этот документ будьте ссылку, \ \ конфигурация [] \ [свод] \] [языкового стандарта \ sample.xml.
|
Папка конфигурации |
Могут быть только 3 папки: отладка, компания и CommonConfiguration.Авторы SDK могут задавать их в файлы CommonConfiguration при тот же набор файлов SDK должен использоваться независимо от конфигурации целевой объект-получателем SDK. |
Папка архитектуры |
Любой поддерживаемой папку архитектуры могут существовать.Visual Studio 2012 поддерживает следующие архитектуры: x86, x64, ARM, зависящий от.Сопоставления Win32 в x86 и сопоставление с использованием нейтральному. |
SDKManifest.xml |
Этот файл описание должно использовать Visual Studio SDK.Найдите следующий манифест пакета SDK образца.
УзелОписание
DisplayNameЗначение, которое отображается в диспетчере ссылки, обозреватель решений, обозреватель объектов и другие расположения в интерфейсе пользователя для Visual Studio.
ProductFamilyNameОбщее название продукта SDK.Например, Библиотека Windows для JavaScript (WinJS) SDK поставляется вместе с пакетом SDK с именем "Microsoft.WinJS.1.0" и "Microsoft.WinJS.2.0", которые принадлежат к одному семейству совокупности продуктов SDK, "Microsoft.WinJS".Этот атрибут позволяет Visual Studio и MSBuild для создания эта связь.Если этот атрибут не существует, то имя SDK используется как имя семейства продуктов.
FrameworkIdentityОбласть применения.только к библиотеке компонентов Windows.Значение этого атрибута помещается в манифест приложения, используя для обозначения зависимости от одного или нескольких библиотек компонентов Windows.
TargetFrameworkЗначение используется для определения, пакет SDK доступны в диспетчере и элемента ссылки.Это может быть создаваемых с запятой разделенным списком моникеров требуемой версии .NET Framework.Если несколько версий одного и того же требуемой версии .NET Framework определены, то диспетчер ссылок будет использовать самую низкую указанную версию для фильтрации цели.Например, если "платформы .NET Framework, version=v2.0; определяется платформы .NET Framework, version=v4.0", диспетчер ссылок будет использовать "платформы .NET Framework, version=v2.0".Если определенное профилирование требуемой версии .NET Framework определено, то только профилирование будет использоваться диспетчером ссылки для фильтрации цели.Например, если "будет определено, profile=WindowsPhone Silverlight, version=v4.0", диспетчер ссылки только на Windows Phone фильтрует профилирования; для полного проект Silverlight 4.0 платформы .NET Framework не увидит SDK в диспетчере ссылки.
MinVSVersionИспользуется для фильтрации, пакет SDK указывают вверх в каждой версии Visual Studio.
AppliesTo
Значение используется для определения, пакет SDK доступны в диспетчере ссылки, указав применимые типы проектов Visual Studio.В Visual Studio 2012, 9 значений: WindowsAppContainer, VisualC, CSharp, VB, WindowsXAML, управлениеое JavaScript, и собственные.Автор SDK может использовать и (" + ') или ("|"), а не " (! операторы "), чтобы определить точно область типов проектов, которые применяются к SDK.
Примечание
WindowsAppContainer проблемные проекты приложений Магазина Windows.
SupportPrefer32BitПоддерживаемые значения "true" и "false".Если значение равно true, результат такой же, если атрибут не установлен. то есть соглашение по умолчанию, Prefer32Bit поддерживается.Если значение установлено значение "false", MSBuild возвращает ошибку для проектов Магазина Windows (или предупреждение для проектов рабочего стола), если проект, который ссылается на SDK содержит допустимое Prefer32Bit.Дополнительные сведения о Prefer32Bit см. в следующих разделах, в зависимости от выбранного языка программирования.
SupportedArchitecturesСписок разделенных точкой с запятой, поддерживает архитектур SDK.MSBuild отображает предупреждение, если не поддерживается, используемая с помощью архитектура SDK в проекте.Если этот атрибут не задан, MSBuild никогда не отображает этот тип предупреждения.
SupportsMultipleVersionsЕсли для этого атрибута задано значение Ошибка или Предупреждение, MSBuild означает, что тот же проект не может ссылаться на несколько версий одного и того же семейства SDK.Если этот атрибут не существует или имеет значение Разрешить, MSBuild не отображает этот тип ошибки или предупреждения.
AppXОбласть применения.только к библиотеке компонентов Windows.Это значение атрибута указывает путь к пакетам приложения для библиотеки компонентов Windows на диске и передается путь к компоненту регистрации библиотеки компонентов Windows во время локальной отладки.Соглашение об именах для имени файла компания []. [Продукт]. Архитектура []. Конфигурация []. Версии [] .appx.Конфигурация и архитектура необязательно в имени атрибута и значения атрибута, если они не применяются к библиотеке компонентов Windows.
CopyRedistToSubDirectoryАвтор SDK может определить расположение файлов в папку \ redist, получает копированными относительно корня пакета приложения (то есть, выбранном в мастере Размещение пакета приложения для создания пакета) и корня продолжитеному по времени макета.Расположение по умолчанию корневой каталог приложения и макета пакета F5.
DependsOnЗапятыми списка идентификаторов SDK, которые идентифицируют пакет SDK, от которых зависит это SDK.Этот атрибут присутствует в области сведений диспетчера ссылки.
MoreInfoСодержит URL-адрес веб-страницы, предоставляющий объект-получателя SDK с руководством.Это значение используется в нескольких информационной связи в правой области диспетчера ссылки.
Ссылки на файлыЭтот атрибут должен быть определен только для тех сборки и ссылки WinMD, или содержат элементы управления или собственный WinMD, для которого необходимо указать тип регистрации.
Тип регистрацииЭтот атрибут задает регистрацию WinMD в манифесте приложения и требуется для собственных WinMD, DLL реализации аналога.
Элемент
В следующей таблице приведены поддерживаемые атрибуты.
Размещение в элементеПример SDKManifest.xml (применяется к любым используйте – WinMD или библиотеку DLL)
Создание списка всех элементов управления и поместить их в заданной по умолчанию категории элемента.
Создание списка всех элементов управления, а для их под указанным именем категории.
Перечислите отдельные элементы управления, а для их с соответствующими именами категории.
Перечислите отдельные элементы управления и поместить их в две категории в бленде именами и Visual Studio.
Перечислите отдельные элементы управления по-разному в бленде и Visual Studio.
Перечислите отдельные элементы управления и поместить их в Visual Studio путем общим или только в группе всех элементов управления.
Перечислите отдельные элементы управления и показывает только определенный набор в ChooseItems без их из панели элементов.
|
В Visual Studio
Ссылка диспетчер будьте выглядеть целевой объект платформа моникер (TPM) и затем заменить значения свойства в \ Program Files \ Microsoft пакет SDK \ [TPI] \ v [TPV] \ ExtensionSDKs пользователь, \ \ имя пользователя [] \ Microsoft пакет SDK \ [TPI] \ v [TPV] \ ExtensionSDKs и HKLM \ программное обеспечение \ Microsoft \ Microsoft пакет SDK \ [TPI] \ v] [TPV \ \ ExtensionSDKs диска для определения расположения пакета SDK расширения.
Диспетчер ссылок затем открыть манифест пакета SDK для каждого расширения SDK, чтобы определить, является ли расширение SDK применимо к версии Visual Studio, в которой был вызван диспетчер ссылок, применимо ли расширение SDK согласно прицеленному .NET Framework для проекта, вызвано диспетчер ссылок и соответствуют ли значения атрибута AppliesTo объявлянным возможностям системы проектов, которая вызвала диспетчер ссылок.Если расширение SDK предназначен для всех числах, диспетчер ссылки будут DisplayName, версии и зависимости SDK и затем заполняет более информационной связи правильно согласно манифест пакета SDK расширения.
Расширение SDK отображается как одинарный ввода в диспетчере ссылки.Как только добавлен, оно отображается как один узел в Обозреватель решений для управляемых приложений и приложений Магазина Windows, созданный для Windows с помощью JavaScript.SDK также отображается как одинарный входных данных на страницах свойств для проектов Visual C-++ C.Теперь пользователь не должен принимать любое более добавочное действие.Пользователь имеет для IntelliSense, элемента, конструкторов, обозревателя объектов, построения, развертывания и отладки пакетов.
Примечание |
---|
|
См. также
Задачи
Пошаговое руководство. Создание пакета SDK с помощью C++
Пошаговое руководство. Создание пакета SDK с помощью C#