Cómo: Crear un kit de desarrollo de software
Un kit de desarrollo de software (SDK) es una colección de archivos que Visual Studio tratar como un solo elemento de referencia.El cuadro de diálogo Administrador de referencias muestra todos los SDK pertinente para el proyecto que invoca el cuadro de diálogo Administrador de referencias.Al agregar SDK a un proyecto, todo el contenido están disponibles con IntelliSense, Cuadro de herramientas, diseñadores, el explorador de objetos, la compilación, implementación, depuración, y el paquete.
Hay dos tipos de SDK:
Los Platform SDK son componentes necesarios para desarrollar aplicaciones para una plataforma.Por ejemplo, Windows 8 SDK se requiere para desarrollar aplicaciones de Tienda Windows.
La extensión SDK son componentes opcionales que extienden una plataforma pero no es obligatoria para desarrollar aplicaciones para esa plataforma.
Las secciones siguientes describen la infraestructura general de SDK y cómo crear un SDK de la plataforma y una extensión SDK.
Moniker de la plataforma de destino
Platform SDK
Extensión SDK
Moniker de la plataforma de destino
Visual Studio 2012 admite dos nuevas propiedades:
Identificador (TPI) de la plataforma de destino: Los valores válidos de esta propiedad constan de las distintas plataformas en las que puede desarrollar software.Windows es un ejemplo de una plataforma.
Versión (TPV) de la plataforma de destino: Esta propiedad identifica la versión de la plataforma de destino.Por ejemplo, para Windows 8, el TPV es 8,0, y las TPI son Windows.
Juntas, estas dos propiedades forman el moniker (TPM) de la plataforma de destino, que constituye la base para Windows 8 y SDK que haga referencia la infraestructura.Por ejemplo, el TPM para Windows 8 es “Windows, version=8.0”.
Platform SDK
Los Platform SDK necesarios para desarrollar aplicaciones para una plataforma.Por ejemplo, Windows 8 SDK se requiere para desarrollar aplicaciones para Windows 8.
Instalación
Todos los SDK de la plataforma se instalarán en la raíz de HKLM \software\microsoft\microsoft sdks\[tpi]\v[tpv]\@installationfolder \Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\@InstallationFolder = [SDK [sdk].En consecuencia, Windows 8 SDK está instalado en HKLM \software\microsoft\microsoft sdks\windows \ v8.0.
Diseño
Los Platform SDK tendrán el siguiente diseño:
\[InstallationFolder root]
SDKManifest.xml
\References
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Nodo |
Descripción |
---|---|
Carpeta Referencias |
Contiene los binarios que contienen API con el que puede codificar.Podrían incluir los archivos o ensamblados de (WinMD) de metadatos de Windows. |
Carpeta de DesignTime |
Contiene los archivos que se necesitan únicamente en tiempo de pre- ejecución y depuración.Podrían incluir documentos XML, bibliotecas, encabezados, binarios en tiempo de diseño del cuadro de herramientas, los artefactos de MSBuild, etc.
Precaución
Los documentos XML, se incluirán idealmente en la carpeta de \DesignTime, pero los documentos XML para las referencias seguirán siendo colocados junto al archivo de referencia en Visual Studio 2012.Por ejemplo, el documento XML para referencia \References\[config]\[arch]\sample.dll será \References\[config]\[arch]\sample.xml y la versión traducida de ese documento será \References\[config]\[arch]\[locale]\sample.xml.
|
Carpeta de configuración |
Puede haber tres carpetas: depuración, comercial y CommonConfiguration.Los autores de SDK pueden colocar los archivos bajo CommonConfiguration si utilizan el mismo conjunto de archivos de SDK, independientemente de la configuración que el consumidor del SDK de destino. |
Carpeta de arquitectura |
Cualquier carpeta compatible de la arquitectura puede existir.Visual Studio 2012 admite las arquitecturas siguientes: x86, x64, la ARM, y neutro.Nota: Mapas de Win32 a x86, y mapas AnyCPU en neutra. En .NET Framework 4.5, MSBuild se pone en código para buscar sólo en \commonconfiguration\neutral \CommonConfiguration\neutral for Platform SDKs \CommonConfiguration\neutral for Platform SDKs \CommonConfiguration\neutral for Platform SDKs. |
SDKManifest.xml |
Este archivo describe cómo Visual Studio debe utilizar SDK.Busque el Manifiesto para Windows 8:
DisplayNameEl valor que el examinador de objetos muestra en la lista examinar.
PlatformIdentityLa existencia de este atributo indica Visual Studio y MSBuild que SDK es un SDK de la plataforma y que las referencias agregadas de no se deben copiar localmente.
TargetFrameworkEste atributo se usa en Visual Studio para garantizar que solo los proyectos destinados a mismo Marcos según el valor de este atributo puede consumir SDK.
MinVSVersionEste atributo se usa en Visual Studio para utilizar solo el SDK a.
ReferenciaEste atributo se debe especificar solamente para las referencias que contienen controles.Para obtener información sobre cómo especificar si una referencia contiene controles, vea a continuación.
|
En Visual Studio
El administrador de referencia tendrá la plataforma de destino Moniker (TPM) y después sustituirá los valores de propiedad en HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\@InstallFolder = [ráiz de SDK] para detectar la ubicación en disco de Platform SDK.El administrador de referencias a continuación:
Abra el Manifiesto para determinar si el SDK de la plataforma es aplicable a la versión de Visual Studio en la que se ha invocado el administrador de referencia y de si el SDK de la plataforma es aplicable del marco de destino del proyecto que invoca al administrador de la referencia.Si el SDK de la plataforma es aplicable en ambos recuentos, el administrador de referencia utilizará la propiedad ID de la plataforma de destino para el nombre de la pestaña en la que mostrar el SDK de la plataforma hace referencia.Si el SDK de la plataforma no se encuentra en el disco, la pestaña seguirá apareciendo, pero el panel central mostrará que el mensaje “[las TPI] SDK no se encontró en el equipo”.
Mostrar todas las referencias especificadas bajo [raíz de InstallFolder] a la ficha de \references\commonconfiguration\neutral \references\CommonConfiguration\neutral folder in the [TPI] | Core \references\CommonConfiguration\neutral folder in the [TPI] | Core \references\CommonConfiguration\neutral folder in the [TPI] | Core [tpi] = \references\CommonConfiguration\neutral folder in the [TPI] | Core.
El usuario puede agregar referencias en Platform SDK a su proyecto y utilizarlas en código mientras cualquier ensamblado o WinMD.
Extensión SDK
La extensión SDK extiende una plataforma pero no es obligatoria para desarrollar aplicaciones para esa plataforma.Por ejemplo, Bing Maps y Windows Live SDK extienden Windows 8 pero no son necesarios por todos los desarrolladores para ese sistema operativo.
Instalación
La extensión SDK se puede colocar una de cuatro ubicaciones:
\program files\microsoft sdks\[tpi]\v[tpv]\extensionsdks
\users\[username]\appdata\local\microsoft sdks\[tpi]\v[tpv]\extensionsdks
En el archivo de proyecto como <PropertyGroup><SDKReferenceDirectoryRoot>dir1;dir2</SDKReferenceDirectoryRoot></PropertyGroup> donde dir1 y dir2 identifican cualquier dos ubicaciones del disco
HKLM de \software\microsoft\microsoft sdks\[tpi]\v[tpv]\extensionsdks\[sdkname]\[sdkversion]\@default \Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\[SDKName]\[SDKVersion]\@default = [SDK root] where [SDK root] is [Path to SDK]\[SDKName]\[SDKVersion [sdk root] \Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\[SDKName]\[SDKVersion]\@default = [SDK root] where [SDK root] is [Path to SDK]\[SDKName]\[SDKVersion [sdk root] \Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\[SDKName]\[SDKVersion]\@default = [SDK root] where [SDK root] is [Path to SDK]\[SDKName]\[SDKVersion [path \Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\[SDKName]\[SDKVersion]\@default = [SDK root] where [SDK root] is [Path to SDK]\[SDKName]\[SDKVersion sdk]\[sdkname]\[sdkversion] \
Para las primeras tres ubicaciones, no hay claves del Registro necesarias.Puede quitar simplemente la extensión SDK en la ubicación equipo- elevado, usuario- específica, o personalizada, y Visual Studio detectará simplemente SDK.Si cualquiera de estos mecanismos son adecuados, puede especificar la ubicación personalizada de SDK utilizando la ruta de registro en la cuarta ubicación.
Diseño
La extensión SDK tendrá el siguiente diseño:
\[ExtensionSDKs root]
\[SDKName]
\[SDKVersion]
SDKManifest.xml
\References
\[config]
\[arch]
\Redist
\[config]
\[arch]
\DesignTime
\[config]
\[arch]
Nodo |
Descripción |
---|---|
\[SDKName]\[SDKVersion] |
Forma la identidad de extensión SDK.Es decir el nombre y la versión de la extensión SDK se derivan de los nombres de carpeta correspondientes en la ruta de acceso a la raíz de SDK.MSBuild utiliza esta identidad para buscar SDK en disco, y Visual Studio muestra esta identidad en la ventana propiedades y el administrador de la referencia. |
Carpeta Referencias |
Consta de los binarios que contienen API con el que puede codificar.Podrían ser archivos o ensamblados de (WinMD) de metadatos de Windows. |
Carpeta de Redist |
Consta de los archivos necesarios para el tiempo de ejecución y depuración y deben obtener empaquetado como parte de la aplicación.Dos reglas aplican:
|
Carpeta de DesignTime |
Consta de los archivos que solo son tiempo necesario de pre- ejecutar o depurar y no deben empaquetar como parte de la aplicación.Podrían ser documentos XML, bibliotecas, encabezados, binarios en tiempo de diseño del cuadro de herramientas, los artefactos de MSBuild, etc.
Precaución
Cualquier SDK que se ha diseñado para su uso en un proyecto nativo debe tener un archivo de SDKName.props.El código siguiente muestra un ejemplo de este tipo de archivo.
Nota
Los documentos XML, se incluirán idealmente en la carpeta de \DesignTime, pero los documentos XML para las referencias seguirán siendo colocados junto al archivo de referencia en Visual Studio 2012.Por ejemplo, el documento XML para referencia \References\[config]\[arch]\sample.dll será \References\[config]\[arch]\sample.xml y la versión traducida de ese documento será \References\[config]\[arch]\[locale]\sample.xml.
|
Carpeta de configuración |
Puede haber tres carpetas: depuración, comercial y CommonConfiguration.Los autores de SDK pueden colocar los archivos bajo CommonConfiguration cuando el mismo conjunto de archivos de SDK debe ser consumido, independientemente de la configuración de destino por el consumidor de SDK. |
Carpeta de arquitectura |
Cualquier carpeta compatible de la arquitectura puede existir.Visual Studio 2012 admite las arquitecturas siguientes: x86, x64, la ARM, neutro.Mapas de Win32 a x86, y mapas AnyCPU en neutra. |
SDKManifest.xml |
Este archivo describe cómo Visual Studio debe utilizar SDK.Observe el siguiente ejemplo SDK Manifiesto.
NodoDescripción
DisplayNameEl valor que aparece en el administrador de referencia, el explorador de soluciones, explorador de objetos, y otras ubicaciones en la interfaz de usuario de Visual Studio.
ProductFamilyNameEl nombre de producto total de SDK.Por ejemplo, Biblioteca de Windows para JavaScript (WinJS) SDK enviará SDK con el nombre “Microsoft.WinJS.1.0” y “Microsoft.WinJS.2.0”, que pertenecen a la misma familia de familia de productos de SDK, “Microsoft.WinJS”.Este atributo permite que Visual Studio y MSBuild crean esa conexión.Si no existe este atributo, el nombre de SDK se utiliza como el apellido del producto.
FrameworkIdentityAplicable únicamente a las bibliotecas de componentes de Windows.El valor de este atributo se coloca en la aplicación que utiliza manifiesto indicar dependencia en una o más bibliotecas de componentes de Windows.
TargetFrameworkValor utilizado para determinar qué SDK está disponible en el administrador y cuadro de herramientas de la referencia.Puede ser una lista delimitada por puntos y comas de monikers de.NET framework de destino.Si varias versiones del mismo marco de destino se especifican, el administrador de referencia utilizará la versión especificada inferior para filtrar informes.Por ejemplo, si “.NET Framework, version=v2.0; se especifica .NET Framework, version=v4.0”, administrador de referencia utilizará “.NET Framework, version=v2.0”.Si se especifica un perfil específico de.NET framework de destino, sólo ese perfil será utilizado por el administrador de la referencia para filtrar informes.Por ejemplo, cuando se especifica “Silverlight, version=v4.0, profile=WindowsPhone”, el administrador de referencia filtrará sólo en el perfil de Windows phone; un proyecto que tiene como destino la versión completa de Silverlight 4,0 no verán SDK en el administrador de la referencia.
MinVSVersionSe utiliza para filtrar que SDK aparece en cada versión de Visual Studio.
AppliesTo
Valor utilizado para determinar qué SDK está disponible en el administrador de la referencia especificando los tipos de proyecto aplicables de Visual Studio.En Visual Studio 2012, se reconocen nueve valores: WindowsAppContainer, VisualC, VB, CSharp, WindowsXAML, JavaScript, administrado, y natural.El autor de SDK puede utilizar y (“+ '), o (“|¡"), no (“! ") operadores para especificar exactamente el ámbito de los tipos de proyecto que se aplican a SDK.
Nota
WindowsAppContainer identifica los proyectos para las aplicaciones de Tienda Windows.
SupportPrefer32BitLos valores admitidos son “True” y “False”.Si el valor se establece en “True”, el resultado es el mismo que si el atributo no se establece; es decir, la hipótesis predeterminada es que Prefer32Bit es.Si el valor se establece en “False”, MSBuild devuelve un error de los proyectos de Tienda Windows (o una advertencia para los proyectos de escritorio) si el proyecto que hace referencia el SDK tiene Prefer32Bit habilitado.Para obtener más información sobre Prefer32Bit, vea uno de los temas siguientes, dependiendo del lenguaje de programación:
SupportedArchitecturesUna lista delimitada por punto y coma de arquitecturas que SDK admite.MSBuild muestra una advertencia si la arquitectura de destino de SDK en el proyecto que utiliza no se admite.Si no se especifica este atributo, MSBuild nunca muestra este tipo de advertencia.
SupportsMultipleVersionsSi este atributo está establecido en Error o a Advertencia, MSBuild indica que el mismo proyecto no puede hacer referencia a varias versiones de la misma familia de SDK.Si este atributo no existe o se establece en permitir, MSBuild no muestra este tipo de error o de advertencia.
AppXAplicable únicamente a las bibliotecas de componentes de Windows.Este valor de atributo especifica la ruta de acceso a los paquetes de la aplicación para la biblioteca de componente de Windows en el disco, y la ruta de acceso se pasa al componente del registro de la biblioteca de componentes de Windows durante la depuración local.La convención de nomenclatura para el nombre de archivo es [compañía]. [Product]. Arquitectura []. [Configuración]. [] Versión .appx.La configuración y la arquitectura son opcionales en el nombre de atributo y el valor del atributo si no se aplican a la biblioteca de componentes de Windows.
CopyRedistToSubDirectoryEl autor de SDK puede determinar en donde los archivos \ carpeta redist obtendrán copiado en relación con la raíz del paquete de la aplicación (es decir, Ubicación del paquete elegido en el asistente del paquete de la aplicación de crear) y la raíz del diseño en tiempo de ejecución.La ubicación predeterminada es la raíz del paquete de la aplicación y diseño de F5.
DependsOnLista delimitada de identidades de SDK que definen el SDK de que este SDK depende.Este atributo aparece en el panel de detalles del administrador de referencia.
MoreInfoContiene la dirección URL a la página Web que proporciona el consumidor de SDK con orientación.Este valor se utiliza en el vínculo de información de Más en el panel derecho del administrador de referencia.
Referencia de archivoEste atributo se debe especificar solo para los ensamblados y las referencias de WinMD que contiene controles o es código WinMD que el tipo del registro debe ser especificado.
Tipo de registroEste atributo especifica el registro de WinMD en el manifiesto de aplicación y se requiere para nativo WinMD, que tiene una implementación DLL de equivalente.
Cuadro de herramientas
La tabla siguiente se describen los atributos compatibles.
Posición en el cuadro de herramientasEjemplo de SDKManifest.xml (aplicable a cualquier referencia – WinMD o DLL)
Mostrar todos los controles, y los coloca en la categoría predeterminada del cuadro de herramientas.
Mostrar todos los controles, y los coloca con un nombre de categoría determinado.
Enumera los controles específicos, y los coloca en nombres de categoría determinados.
Enumera los controles específicos, y los coloca en diversos nombres de categoría en Blend y Visual Studio.
Enumera los controles específicos de manera diferente en Blend y Visual Studio.
Enumera los controles específicos, y los coloca en la ruta común de Visual Studio o sólo en el grupo de Controles Todo.
Enumera los controles específicos, y muestran solo un conjunto concreto de ChooseItems sin ellos que están en el cuadro de herramientas.
|
En Visual Studio
El administrador de referencia tendrá la plataforma de destino Moniker (TPM) y después sustituirá los valores de propiedad en \Program Files\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs, \Users\[username]\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs y HKLM\Software\Microsoft\Microsoft SDKs\[TPI]\v[TPV]\ExtensionSDKs\ para detectar la ubicación en disco de los SDK de extensión.
El administrador de referencias a abrirá SDK Manifiestos de cada extensión SDK para determinar si la extensión SDK es aplicable a la versión de Visual Studio en la que se ha invocado el administrador de referencia, si la extensión SDK es aplicable del marco de destino del proyecto que invocó el administrador de referencia, y si la coincidencia de los valores de atributo de AppliesTo funciones anunciados del sistema de proyectos que invocó al administrador de la referencia.Si la extensión SDK es aplicable en todos los recuentos, el administrador de referencia mostrará el DisplayName, la versión, y las dependencias de SDK y después rellenará el vínculo de información de Más correctamente según la extensión SDK Manifiesto.
Una extensión SDK aparece como una sola entrada en el administrador de la referencia.Una vez agregado, aparece como un nodo en Explorador de soluciones para las aplicaciones administradas y las aplicaciones de Tienda Windows compiladas para Windows mediante JavaScript.SDK también aparece como una sola entrada en las páginas de propiedades para proyectos de Visual C++.El usuario ahora no tiene que realizar cualquier acción otras.Establece el usuario para IntelliSense, el cuadro de herramientas, diseñadores, el explorador de objetos, la compilación, implementación, depuración, y el paquete.
[!NOTA]
Basado en el proyecto indicó la configuración y la arquitectura, Visual Studio seleccionará las referencias del menos específico a más específico.Por ejemplo, si la configuración de destino de SDK es debug y la arquitectura de destino de SDK es x86, Visual Studio mostrará todas las referencias, comenzando por \ referencias \ commonconfiguration \ neutro, después \ referencias \ commonconfiguration \ x86, después \ referencias \ debug \ neutro, y finalmente \ referencias \ debug \ x86.A continuación quitará cualquier duplicado menos- concreto y pasará todas las referencias al compilador que IntelliSense.De esta manera las referencias de la cosecha ofrece al autor de SDK la flexibilidad no tengan que duplicar las referencias en las carpetas de varias \ de configuración \ de arquitectura.
Si un proyecto hace referencia SDK que depende de otro SDK, Visual Studio automáticamente no consumirá segundo SDK.El usuario debe agregar manualmente una referencia a segundo SDK.Para ayudar al usuario a deducir las dependencias de SDK, en el cuadro de diálogo administrador de referencia, cuando SDK se especifica en la pestaña de extensiones, el panel de detalles muestra el nombre y la versión de SDK y, si SDK depende de otro SDK) el nombre de la dependencia de SDK.Cuando las dependencias de SDK no se cumplen, MSBuild devuelve una advertencia que solicita al usuario agregar las dependencias.
FrameworkIdentity: Visual Studio busca primero para FrameworkIdentity- [configuración] - [arco], a continuación FrameworkIdentity- [configuración], a continuación FrameworkIdentity- [arco] y, a continuación FrameworkIdentity.Cuando encuentra una coincidencia, registra el valor del atributo coincidente.
AppX: El software de resolución de nombres de SDK intenta elegir el atributo más específico de AppX en la arquitectura; preferencia en orden descendente: AppX- [configuración] - [arco] (o AppX- [configuración] en el caso neutro), entonces AppX- [arco] y, finalmente AppX.Por ejemplo, si el Manifiesto especificado los siguientes atributos de AppX: “AppX-x86”, “AppX-debug-x86”, “AppX-x64”, “AppX-ARM”, “AppX- AIE” y “AppX”, y el proyecto apuntaba depuración y x86, la resolución de nombres de SDK selección “AppX-debug-x86”, “AppX-x64”, “AppX-ARM”, “AppX- AIE” y “AppX”.
En una plantilla de proyecto que haga referencia SDK, debe especificar la referencia del SDK de la manera siguiente:
<ItemGroup> <SDKReference Include="MySDK, Version=1.0"> <Name>My SDK</Name> </SDKReference> </ItemGroup>
Vea también
Tareas
Tutorial: Crear un SDK usando C++
Tutorial: Crear un SDK usando C#