Elección entre VSPackages compartidos y con control de versionesChoose between shared and versioned VSPackages

Las diferentes versiones de Visual Studio pueden coexistir en el mismo equipo.Different versions of Visual Studio can coexist on the same computer. Los paquetes VSPackage pueden admitir cualquier combinación de Programa para la mejoraVisual Studio versiones.VSPackages can support any mix of Programa para la mejoraVisual Studio versions.

Puede permitir que las instalaciones en paralelo de VSPackages a través de cualquiera de las dos estrategias, la estrategia compartida o la estrategia con control de versiones.You can enable side-by-side installations of VSPackages through either of two strategies, the shared strategy or the versioned strategy. Ambos dar cabida a la presencia de varias versiones de Programa para la mejoraVisual Studio y asociadas a las versiones de la .NET Framework.NET Framework.Both accommodate the presence of multiple versions of Programa para la mejoraVisual Studio and associated versions of the .NET Framework.NET Framework.

En la estrategia compartida, se registra un VSPackage para su uso en varias versiones de Programa para la mejoraVisual Studio.In the shared strategy, one VSPackage is registered for use in multiple versions of Programa para la mejoraVisual Studio. En la estrategia con control de versiones, se instalan varios archivos DLL de VSPackage, uno para cada versión de Programa para la mejoraVisual Studio que proporciona soporte técnico.In the versioned strategy, multiple VSPackage DLLs are installed, one for each version of Programa para la mejoraVisual Studio that you support.

VSPackages compartidosShared VSPackages

Uso de un VSPackage compartido es adecuado cuando se usa el mismo paquete de VS en varias versiones de Programa para la mejoraVisual Studio.Using a shared VSPackage is appropriate when you use the same VSPackage in multiple versions of Programa para la mejoraVisual Studio. Para implementar un paquete VSPackage compartido, debe realizar los pasos siguientes:To implement a shared VSPackage, you must take the following steps:

  • Hacer que el VSPackage que sean compatibles con varias versiones de Programa para la mejoraVisual Studio.Make your VSPackage compatible with multiple versions of Programa para la mejoraVisual Studio. Dos maneras de hacerlo así que están disponibles:Two ways of doing so are available:

    • Limitar el VSPackage para usar solo las características de la versión anterior de Programa para la mejoraVisual Studio que proporciona soporte técnico.Limit your VSPackage to using only the features of the earliest version of Programa para la mejoraVisual Studio that you support.

    • Programar el paquete de VS para adaptarse a la versión de Programa para la mejoraVisual Studio en que se está ejecutando.Program your VSPackage to adapt to the version of Programa para la mejoraVisual Studio in which it is running. A continuación, si se produce un error en las consultas para los servicios más recientes, el paquete de VS puede ofrecer otros servicios que se admiten en versiones anteriores de Programa para la mejoraVisual Studio.Then, if queries for newer services fail, your VSPackage can offer other services that are supported in older versions of Programa para la mejoraVisual Studio.

  • Registre el VSPackage adecuadamente.Register your VSPackage appropriately. Para obtener más información, consulte registro de VSPackage y registro de VSPackage administrado.For more information, see VSPackage registration and Managed VSPackage registration.

  • Registrar las extensiones de archivo correctamente.Register file extensions appropriately. Para obtener más información, consulte registrar las extensiones de nombre de archivo para las implementaciones en paralelo.For more information, see Registering file name extensions for side-by-side deployments.

  • Crear un instalador que implementa el VSPackage para las versiones adecuadas de Programa para la mejoraVisual Studio.Create an installer that deploys your VSPackage for the appropriate versions of Programa para la mejoraVisual Studio. Para obtener más información, consulte instalar VSPackages con Windows Installer y administración componente.For more information, see Installing VSPackages with Windows Installer and Component management.

  • Solucionar el problema de conflictos de registro.Address the issue of registration collisions. Para obtener más información, consulte registro de VSPackage.For more information, see VSPackage registration.

  • Que respeten los archivos compartidos y con control de versiones permitir la instalación segura y eliminación de varias versiones de recuento de referencias.Ensure that both shared and versioned files respect reference counting to allow safe installation and removal of multiple versions. Para obtener más información, consulte administración componente.For more information, see Component management.

VSPackages con control de versionesVersioned VSPackages

En la estrategia de VSPackage con control de versiones, crea un VSPackage para cada versión de Programa para la mejoraVisual Studio que proporciona soporte técnico.Under the versioned VSPackage strategy, you create one VSPackage for each version of Programa para la mejoraVisual Studio that you support. Esto es adecuado si tiene previsto aprovechar los servicios proporcionados por las versiones posteriores de Programa para la mejoraVisual Studio, porque cada VSPackage puede evolucionar sin que afecte a los demás.Doing this is appropriate when you expect to take advantage of services provided by later versions of Programa para la mejoraVisual Studio, because each VSPackage can evolve without affecting the others. No obstante, la estrategia de creación de varios archivos binarios, de un único código base o de varias bases de código independiente, con control de versiones puede implicar más el desarrollo inicial de la estrategia compartido.Nevertheless, the versioned strategy of creating multiple binaries, either from a single code base or from multiple independent code bases, might entail more initial development than the shared strategy. Además, podría requerirse trabajo adicional de la configuración porque debe crear tanto una instalación independiente para cada versión o un programa de instalación único que detecta las versiones de Programa para la mejoraVisual Studio que estén instalados y que admita el VSPackage.Also, additional setup work might be required because you must create either a separate setup for each version or a single setup that detects the versions of Programa para la mejoraVisual Studio that are installed and that your VSPackage supports.

Compatibilidad binariaBinary compatibility

Por lo general, la compatibilidad binaria habilita a VSPackages de código nativo desarrollados con versiones anteriores de Visual Studio para ejecutar en versiones posteriores de Visual Studio.Generally, binary compatibility enables native-code VSPackages developed with earlier versions of Visual Studio to run in later versions of Visual Studio. Sin embargo, hay tres excepciones importantes:However, there are three important exceptions:

  • Si el paquete de VS se basa en una versión determinada de common language runtime, a continuación, debe determinar en qué versión de Programa para la mejoraVisual Studio se está ejecutando.If your VSPackage relies on a particular version of the common language runtime, then it must determine in which version of Programa para la mejoraVisual Studio it is running.

  • Un VSPackage podría tener una dependencia en una característica específica de otro VSPackage u otro producto.A VSPackage might have a dependency on a specific feature of another VSPackage or another product. Por lo tanto, el VSPackage puede ejecutar solo donde se satisfizo la dependencia.Consequently, the VSPackage can run only where the dependency is satisfied.

  • Un VSPackage podría verse afectado por una revisión de seguridad en un Programa para la mejoraVisual Studio service pack o una versión posterior de Programa para la mejoraVisual Studio.A VSPackage might be affected by a security fix in a Programa para la mejoraVisual Studio service pack or a later version of Programa para la mejoraVisual Studio. En esos casos, un VSPackage se desarrolló con una versión anterior de la Visual Studio SDKVisual Studio SDK podría no ejecutarse en las versiones de Programa para la mejoraVisual Studio después de que se aplicó la revisión de seguridad.In those cases, a VSPackage developed with an earlier version of the Visual Studio SDKVisual Studio SDK might not run in versions of Programa para la mejoraVisual Studio after the security fix was applied. Sin embargo, puede volver a generar el paquete con la versión más reciente y hacer que se ejecute también en versiones anteriores.However, you can rebuild your package with the later version and have it also run in earlier versions.

    VSPackages administrado debe compilarse con una versión de Programa para la mejoraVisual Studio y Visual Studio SDKVisual Studio SDK que coinciden con la versión de destino Programa para la mejoraVisual Studio.Managed VSPackages must be built using a version of Programa para la mejoraVisual Studio and the Visual Studio SDKVisual Studio SDK that match the target version of Programa para la mejoraVisual Studio.

    Además de planeación para la compatibilidad binaria de los archivos binarios de VSPackage, también debe considerar soluciones y formatos de archivo del proyecto.In addition to planning for binary compatibility for your VSPackage binaries, you also should consider solution and project file formats. Si el paquete de VS crea un nuevo tipo de proyecto, debe decidir si se puede ejecutar en una sola versión o en varias versiones de Programa para la mejoraVisual Studio.If your VSPackage creates a new project type, you must decide whether it can run in just one version or in multiple versions of Programa para la mejoraVisual Studio. Para obtener más información, consulte actualizar proyectos personalizados.For more information, see Upgrading custom projects.

Vea tambiénSee also

Instalación de VSPackages con Windows Installer Installing VSPackages with Windows Installer
Administración de componentesComponent management