Compartir a través de


Distribución de un componente administrado de Windows Runtime

Puedes distribuir el componente de Windows Runtime mediante copia de archivos. Sin embargo, si el componente consta de muchos archivos, la instalación puede ser tediosa para los usuarios. Además, los errores en la colocación de archivos o errores en establecer referencias pueden causar problemas para ellos. Puede empaquetar un componente complejo como un SDK de extensión de Visual Studio para facilitar la instalación y el uso. Los usuarios solo necesitan establecer una referencia para todo el paquete. Pueden localizar e instalar fácilmente su componente mediante el cuadro de diálogo Extensiones y actualizaciones, como se describe en Búsqueda y uso de extensiones de Visual Studio.

Planear un componente de Windows Runtime distribuible

Elija nombres únicos para archivos binarios, como los archivos .winmd. Se recomienda el siguiente formato para garantizar la unicidad:

company.product.purpose.extension
For example: Microsoft.Cpp.Build.dll

Los archivos binarios se instalarán en paquetes de aplicaciones, posiblemente con archivos binarios de otros desarrolladores. Consulte "SDKs de Extensión" en Crear un kit de desarrollo de software.

Para decidir cómo distribuir el componente, tenga en cuenta lo complejo que es. Se recomienda un SDK de extensión o un administrador de paquetes similar cuando:

  • Su componente consta de varios archivos.
  • Proporcione versiones del componente para varias plataformas (x86 y Arm, por ejemplo).
  • Ofreces tanto las versiones de depuración como las de lanzamiento de tu componente.
  • El componente tiene archivos y ensamblados que solo se usan en tiempo de diseño.

Un SDK de extensión es especialmente útil si se cumple más de uno de los anteriores.

Nota Para componentes complejos, el sistema de administración de paquetes NuGet ofrece una alternativa de código abierto a los SDK de extensión. Al igual que los SDK de extensión, NuGet permite crear paquetes que simplifican la instalación de componentes complejos. Para obtener una comparación de los paquetes NuGet y los SDK de extensión de Visual Studio, consulte Agregar referencias mediante NuGet frente a un SDK de extensión.

Distribución por copia de archivos

Si el componente consta de un único archivo .winmd, o un archivo .winmd y un archivo de índice de recursos (.pri), simplemente puede hacer que el archivo .winmd esté disponible para que los usuarios copien. Los usuarios pueden colocar el archivo dondequiera que quieran en un proyecto, usar la cuadro de diálogo Agregar elemento existente para agregar el archivo .winmd al proyecto y, a continuación, usar el cuadro de diálogo Administrador de referencias para crear una referencia. Si incluye un archivo .pri o un archivo .xml, indique a los usuarios que coloquen esos archivos con el archivo .winmd.

Nota Visual Studio siempre genera un archivo .pri al compilar el componente de Windows Runtime, incluso si el proyecto no incluye ningún recurso. Si tiene una aplicación de prueba para el componente, puede determinar si el archivo .pri se usa examinando el contenido del paquete de la aplicación en la carpeta bin\debug\AppX. Si el archivo .pri del componente no aparece allí, no es necesario distribuirlo. Como alternativa, puedes usar la herramienta MakePRI.exe para extraer el archivo de recursos de tu proyecto de componente de Windows Runtime. Por ejemplo, en la ventana de comandos de Visual Studio, escriba el comando: makepri dump /if MyComponent.pri /of MyComponent.pri.xml. Puede consultar más información sobre los archivos .pri en Sistema de administración de recursos (Windows).

Distribución por extensión del SDK

Un componente complejo normalmente incluye recursos de Windows, pero vea la nota sobre cómo detectar archivos .pri vacíos en la sección anterior.

Para crear un SDK de extensión

  1. Asegúrese de que tiene instalado el SDK de Visual Studio. Puede descargar el SDK de Visual Studio desde la página de descargas de Visual Studio.

  2. Cree un nuevo proyecto mediante la plantilla Proyecto VSIX. Puede encontrar la plantilla en Visual C# o Visual Basic, en la categoría Extensibilidad. Esta plantilla se instala como parte del SDK de Visual Studio. (Tutorial: Creación de un SDK mediante C# o Visual Basic o Tutorial: Creación de un SDK mediante C++, muestra el uso de esta plantilla en un escenario muy sencillo. )

  3. Determine la estructura de carpetas del SDK. La estructura de carpetas comienza en el nivel raíz del proyecto VSIX, con las carpetas References, Redisty DesignTime.

    • Referencias es la ubicación de los archivos binarios en los que los usuarios pueden desarrollar aplicaciones. El SDK de extensión crea referencias a estos archivos en los proyectos de Visual Studio de los usuarios.
    • Redist es la ubicación de otros archivos que deben distribuirse junto con tus archivos binarios, en las aplicaciones que se crean utilizando tu componente.
    • DesignTime es la ubicación de los archivos que solo se usan cuando los desarrolladores crean aplicaciones que usan el componente.

    En cada una de estas carpetas, puede crear carpetas de configuración. Los nombres permitidos son debug, retail y CommonConfiguration. La carpeta CommonConfiguration es para los archivos que son los mismos si se usan en compilaciones comerciales o de depuración. Si solo distribuye compilaciones comerciales de su componente, puede colocar todo en CommonConfiguration y omitir las otras dos carpetas.

    En cada carpeta de configuración, puede proporcionar carpetas de arquitectura para archivos específicos de la plataforma. Si usa los mismos archivos para todas las plataformas, puede proporcionar una sola carpeta denominada neutral. Puede encontrar detalles de la estructura de carpetas, incluidos otros nombres de carpetas de arquitectura, en Crear un kit de desarrollo de software. (En este artículo se describen los SDK de plataforma y los SDK de extensión. Es posible que le resulte útil contraer la sección sobre los SDK de plataforma para evitar confusiones. )

  4. Cree un archivo de manifiesto del SDK. El manifiesto especifica información de nombre y versión, las arquitecturas que admite el SDK, las versiones de .NET y otra información sobre la forma en que Visual Studio usa el SDK. Puede encontrar detalles y un ejemplo en Crear un kit de desarrollo de software.

  5. Compile y distribuya el SDK de extensión. Para obtener información detallada, incluida la localización y el firmado del paquete VSIX, consulte Envío de extensiones de Visual Studio.