Поделиться через


Практическое руководство. Создание пакета средств разработки программного обеспечения

Пакет средств разработки программного обеспечения (SDK) коллекции файлов, Visual Studio выполняет как один элемент ссылки.В диалоговом окне Диспетчер ссылок перечислены все пакет SDK, которые относятся к проекту, вызывает диалоговое окно Диспетчер ссылок.При добавлении в проект SDK, все содержимое доступны через IntelliSense, Панель элементов конструкторы, обозреватель объектов, построение, развертывание, отладка и упаковку.

2 Типа пакет SDK.

  • Пакет SDK платформы компоненты для разработки приложения для платформы.Например, необходимо, чтобы начинается Windows 8 SDK приложения Магазина Windows.

  • Пакет SDK расширения дополнительные компоненты, которые расширяют структуру, но не требуются для разработки приложений для этой платформы.

В следующих разделах описываются общей инфраструктуры пакет SDK и созданию платформа SDK и расширение SDK.

  • Моникер платформы целевого объекта

  • Пакет SDK платформы

  • Пакет SDK расширения

Моникер платформы целевого объекта

Visual Studio 2012 поддерживает 2 новых свойств.

  1. Идентификатор (TPI) платформы целевого объекта: Допустимые значения этого свойства состоит из различных версий, для которых можно разрабатывать программного обеспечения.Пример платформы Windows.

  2. Версия платформы (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.

Hh768146.collapse_all(ru-ru,VS.110).gifУстановка

Платформа весь пакет SDK будьте номеру в HKLM \ программное обеспечение \ Microsoft \ Microsoft пакет SDK \ [TPI] \ v \ @InstallationFolder TPV [] = [корень SDK].Соответственно, Windows 8 SDK устанавливается в программном обеспечении HKLM \ \ Microsoft \ Microsoft sdks \ Windows \ v8.0.

Hh768146.collapse_all(ru-ru,VS.110).gifМакет

Пакет 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:

<FileList
            DisplayName = “Windows”
            PlatformIdentity = “Windows, version=8.0”
            TargetFramework = “.NET for Windows Store apps, version=v4.5; .NET Framework, version=v4.5”
            MinVSVersion = “11.0”>
            <File Reference = “Windows.winmd”>
               <ToolboxItems VSCategory = “Toolbox.Default” />
            </File>
</FileList>
DisplayNameЗначение, обозреватель объектов отображаются в списке просмотреть.
PlatformIdentityНаличие данного атрибута указывает Visual Studio SDK и MSBuild, что платформа SDK и что добавлены ссылки из нее не должны быть скопированы локально.
TargetFrameworkЭтот атрибут используется Visual Studio, чтобы убедиться, что только проекты, целевой объект те же платформы в соответствии с значением этого атрибута может использовать SDK.
MinVSVersionЭтот атрибут используется Visual Studio, чтобы использовать только пакет SDK, применимых к нему.
СсылкиЭтот атрибут должен быть определен только для тех ссылок, которые содержат элементы управления.Сведения о том, как определить, содержит ли ссылка на элементы управления, см. ниже.

Hh768146.collapse_all(ru-ru,VS.110).gifВ Visual Studio

Ссылка диспетчер будьте выглядеть целевой объект платформа моникер (TPM) и затем заменить значения свойства в HKLM \ программное обеспечение \ Microsoft \ Microsoft пакет SDK \ [TPI] \ v] [TPV \ @InstallFolder SDK] = [корневой каталог диска для определения расположения пакета SDK платформы.Диспетчер ссылок будет затем:

  1. Открытие манифест пакета SDK для определения, является ли платформа SDK применима к версии Visual Studio, в которой был вызван диспетчер ссылок и ли платформа SDK применима согласно прицеленному .NET Framework проекта, диспетчер ссылок.Если платформа SDK применима на обоих числа, диспетчер ссылок будет использовать свойство идентификатора платформы целевого объекта для имя вкладки, в которой перечислены платформу SDK ссылается.Если платформа SDK не находится на диске, вкладку будет по-прежнему отображаться, но средняя область появится сообщение "[] TPI SDK не найдено на компьютере".

  2. Создание списка всех связей, определенных в корень InstallFolder [] \ \ \ ссылками CommonConfiguration нейтральной папкой в TPI [] | Основная вкладка.

Пользователь может добавить ссылки в платформе SDK в проект, и их использование в коде по мере их все сборки или WinMD.

Пакет SDK расширения

Пакет SDK расширения расширяют платформу, но не требуются для разработки приложений для этой платформы.Например, карт Bing и пакет SDK live Windows расширения Windows 8, но не обязательно всеми разработчиками для данной операционной системы.

Hh768146.collapse_all(ru-ru,VS.110).gifУстановка

Пакет 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 с помощью пути реестра в четвертом расположении.

Hh768146.collapse_all(ru-ru,VS.110).gifМакет

Пакет 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

  1. Все бинарный номеру под \ распространяемый \] [конфигурации \] и [свод бинарные имена должны иметь следующий формат, чтобы обеспечить уникальность: компания []. [продукт]. цель []. расширение [].Например, Microsoft.Cpp.Build.dll.

  2. Весь файл с именем, которое может вступить в противоречия с именами других файлов из пакета SDK (например, JavaScript, CSS, pri, XAML, PNG и файлы JPG) номеру под распространяемый \ \ конфигурация [] \ [свод] \] [sdkname \ за исключением файлов, связанные с элементами управления XAML.Этот файл будет задано под распространяемый \ \ конфигурация [] \ [свод] \] [componentname \.

Папка DesignTime

Состоит из файлов, только необходимое время предварительного выполнения и отладки и не могут быть упакованы в составе приложения пользователя.Это может быть XML-документов, библиотеками, заголовками, бинарный во время разработки элемента, артефактами MSBuild и т д

Предупреждающее замечаниеВнимание
Любое SDK, предназначен для использования собственным проектом должно иметь файл SDKName PROPS.В следующем коде приведен пример этого типа файла.
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ExecutablePath>C:\Temp\ExecutablePath;$(ExecutablePath)</ExecutablePath>
    <IncludePath>$(FrameworkSDKRoot)\..\v8.0\ExtensionSDKs\cppimagingsdk\1.0\DesignTime\CommonConfiguration\Neutral\include;$(IncludePath)</IncludePath>
    <AssemblyReferencePath>C:\Temp\AssemblyReferencePath;$(AssemblyReferencePath)</AssemblyReferencePath>
    <LibraryPath>$(FrameworkSDKRoot)\..\v8.0\ExtensionSDKs\cppimagingsdk\1.0\DesignTime\Debug\ARM;$(LibraryPath)</LibraryPath>
    <SourcePath>C:\Temp\SourcePath\X64;$(SourcePath)</SourcePath>
    <ExcludePath>C:\Temp\ExcludePath\X64;$(ExcludePath)</ExcludePath>
    <_PropertySheetDisplayName>DevILSDK, 1.0</_PropertySheetDisplayName>
  </PropertyGroup>
</Project>
ПримечаниеПримечание
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 образца.

<FileList
DisplayName = “My SDK”
ProductFamilyName = “My SDKs”
FrameworkIdentity-Debug = “Name=MySDK.10.Debug, MinVersion=1.0.0.0”
FrameworkIdentity-Retail = “Name=MySDK.10, MinVersion=1.0.0.0”
TargetFramework = “.NETCore, version=v4.5; .NETFramework, version=v4.5”
MinVSVersion = “11.0”
AppliesTo = "WindowsAppContainer + WindowsXAML"
SupportPrefer32Bit = “OS”
SupportedArchitectures = “x86;x64;ARM”
SupportsMultipleVersions = “Error”
AppX-Debug-x86 = “.\AppX\Debug\x86\Microsoft.MySDK.x86.Debug.1.0.appx”
AppX-Debug-x64 = “.\AppX\Debug\x64\Microsoft.MySDK.x64.Debug.1.0.appx”
AppX-Debug-ARM = “.\AppX\Debug\ARM\Microsoft.MySDK.ARM.Debug.1.0.appx”
AppX-Release-x86 = “.\AppX\Retail\x86\Microsoft.MySDK.x86.1.0.appx”
AppX-Release-x64 = “.\AppX\Retail\x64\Microsoft.MySDK.x64.1.0.appx”
AppX-Release-ARM = “.\AppX\Retail\ARM\Microsoft.MySDK.ARM.1.0.appx” 
CopyRedistToSubDirectory = “.”
DependsOn = “SDKB, version=2.0”
MoreInfo = “https://msdn.microsoft.com/MySDK”>
<File Reference = “MySDK.Sprint.winmd” Implementation = “XNASprintImpl.dll”>
<Registration Type = “Flipper” Implementation = “XNASprintFlipperImpl.dll” />
<Registration Type = “Flexer” Implementation = “XNASprintFlexerImpl.dll” />
<ToolboxItems VSCategory = “Toolbox.Default” />
</File>
</FileList>
УзелОписание
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 см. в следующих разделах, в зависимости от выбранного языка программирования.
  1. Страница "Построение" в конструкторе проектов (C#)

  2. Страница "Компиляция" в конструкторе проектов (Visual Basic) .

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)
Создание списка всех элементов управления и поместить их в заданной по умолчанию категории элемента.
<File Reference = “sample.winmd”>
                <ToolboxItems VSCategory = “Toolbox.Default”/>     
</File>
Создание списка всех элементов управления, а для их под указанным именем категории.
<File Reference = “sample.winmd”>
                <ToolboxItems VSCategory= “MyCategoryName”/>
</File>
Перечислите отдельные элементы управления, а для их с соответствующими именами категории.
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Graph”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                < ToolboxItems/>
                < ToolboxItems VSCategory = “Data”>
                                <Item Type = “sample.datagrid”/>
                                <Item Type = “sample.dataconnection”/>
                < ToolboxItems />
</File>
Перечислите отдельные элементы управления и поместить их в две категории в бленде именами и Visual Studio.
// Blend accepts a slightly different structure for the category name because it allows a path rather than a single category.
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Graph” BlendCategory = “Controls/sample/Graph”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                < ToolboxItems />
</File>
Перечислите отдельные элементы управления по-разному в бленде и Visual Studio.
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Graph”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                <ToolboxItems/>
                < ToolboxItems BlendCategory = “Controls/sample/Graph”>
                                <Item Type = “sample.piegraph”/>
                <ToolboxItems/>
</File>
Перечислите отдельные элементы управления и поместить их в Visual Studio путем общим или только в группе всех элементов управления.
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Toolbox.Common”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                < ToolboxItems />
                < ToolboxItems VSCategory = “Toolbox.All”>
                                <Item Type = “sample.datagrid”/>
                                <Item Type = “sample.dataconnection”/>
                < ToolboxItems />
</File>
Перечислите отдельные элементы управления и показывает только определенный набор в ChooseItems без их из панели элементов.
<File Reference = “sample.winmd”>
                < ToolboxItems VSCategory = “Toolbox.ChooseItemsOnly”>
                                <item Type = “sample.bargraph”/>
                                <Item Type = “sample.piegraph”/>
                < ToolboxItems />
</File>

Hh768146.collapse_all(ru-ru,VS.110).gifВ 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, элемента, конструкторов, обозревателя объектов, построения, развертывания и отладки пакетов.

ПримечаниеПримечание
  1. На основе проекта прицелилось конфигурацию и архитектура, Visual Studio выбирает ссылки с наименьшей, для большинства устройств.Например, если конфигурация, используемая SDK, отладки и архитектура x86, используемая SDK, Visual Studio - все ссылки, начиная с \ \ \ ссылки commonconfiguration нейтральная, то ссылки commonconfiguration \ \ \ x86 \ ссылки, то \ debug \ нейтральная, и наконец ссылки \ \ debug \ x86.Затем удаляет все дубликаты менее параметрами и пройдет все ссылки на данные для IntelliSense.Этот образ ссылок рудоразборки позволяет автору SDK не дублировать возможности их ссылки в папками многократному чтению конфигурации \ \ архитектуры.

  2. Если ссылки проекта SDK, зависимый от другого SDK, Visual Studio автоматически не используют второе SDK.Пользователь должен вручную добавить ссылку на второй SDK.Чтобы помочь пользователю вывести зависимости SDK, в диалоговом окне диспетчера ссылки, когда SDK определяется на вкладке расширений в области сведений содержится имя и версию SDK и (если SDK зависит от другого SDK), то имя зависимости SDK.Если зависимости SDK не определено, MSBuild возвращает предупреждение, что запросы пользователя добавление зависимостей.

  3. FrameworkIdentity: Visual Studio сначала ищет для FrameworkIdentity- конфигурации [] [- свод], затем FrameworkIdentity- конфигурации [], затем FrameworkIdentity- [свода], а затем FrameworkIdentity.При обнаружении соответствия, оно не возвращается значение атрибута сопоставления.

  4. AppX: Сопоставитель SDK пытается выбрать наиболее конкретный атрибут AppX на архитектуру; настройка в порядке убывания. AppX- конфигурация [] - свод [] (или AppX- конфигурация [] в случае нейтрального), затем AppX- свод [] и, наконец AppX.Например, если манифест пакета SDK, следующие атрибуты AppX:, "AppX-x86", "AppX-debug-x86", "AppX-x64", "AppX- ARM", "AppX- ITA" и "AppX", а проект целился отладки и x86, сопоставитель выбирает SDK "AppX-debug-x86", "AppX-x64", "AppX- ARM", "AppX- ITA" и "AppX".

  5. В шаблоне проекта, который ссылается на SDK, необходимо указать ссылку SDK следующим образом:

    <ItemGroup>
    <SDKReference Include="MySDK, Version=1.0">
       <Name>My SDK</Name> 
    </SDKReference>
    </ItemGroup>

См. также

Задачи

Пошаговое руководство. Создание пакета SDK с помощью C++

Пошаговое руководство. Создание пакета SDK с помощью C#

Основные понятия

Управление ссылками проекта