Arquitectura de complementos de VSTOArchitecture of VSTO Add-ins

Los complementos de VSTO creados con Office Developer Tools en Visual Studio tienen unas características arquitectónicas que resaltan la estabilidad y seguridad, y que pueden trabajar en estrecha colaboración con Microsoft Office.VSTO Add-ins created by using the Office developer tools in Visual Studio have architectural features that emphasize stability and security, and enable them to work closely with Microsoft Office. En este tema, se describen los siguientes aspectos de los complementos de VSTO:This topic describes the following aspects of VSTO Add-ins:

Comprender los complementos VSTOUnderstand VSTO Add-ins

Cuando se usa Office Developer Tools en Visual Studio para compilar un complemento de VSTO, se crea un ensamblado de código administrado que es cargado por una aplicación de Microsoft Office.When you use the Office developer tools in Visual Studio to build an VSTO Add-in, you create a managed code assembly that is loaded by a Microsoft Office application. Una vez cargado el ensamblado, el complemento de VSTO puede responder a los eventos que se producen en la aplicación como, por ejemplo, cuando un usuario hace clic en un elemento de menú.After the assembly is loaded, the VSTO Add-in can respond to events that are raised in the application (for example, when a user clicks a menu item). El código del complemento de VSTO también puede hacer llamadas en el modelo de objetos para automatizar y extender la aplicación y puede usar cualquiera de las clases de .NET Framework.NET Framework.The VSTO Add-in can also call into the object model to automate and extend the application, and it can use any of the classes in the .NET Framework.NET Framework.

El ensamblado se comunica con los componentes COM de la aplicación a través del ensamblado de interoperabilidad primario de la aplicación.The assembly communicates with the application's COM components through the primary interop assembly of the application. Para obtener más información, consulte ensamblados de interoperabilidad primarios de Office y información general sobre el desarrollo de soluciones de Office (VSTO).For more information, see Office primary interop assemblies and Office solutions development overview (VSTO).

Si se instalan varios complementos de VSTO para una aplicación, cada uno de ellos se carga en un dominio de aplicación diferente.If multiple VSTO Add-ins are installed for an application, each VSTO Add-in is loaded in a different application domain. Esto significa que un complemento de VSTO que se comporta incorrectamente no puede hacer que otros complementos de VSTO generen un error.This means that one VSTO Add-in that behaves incorrectly cannot cause other VSTO Add-ins to fail. También ayuda a garantizar que, cuando se cierra la aplicación, todos los ensamblados de complementos de VSTO se descarguen de la memoria.It also helps to ensure that when the application is closed, all the VSTO Add-in assemblies are unloaded from memory. Para obtener más información acerca de los dominios de aplicación, consulte dominios de aplicación.For more information about application domains, see Application domains.

Nota

Los complementos de VSTO que se crean con Office Developer Tools en Visual Studio están diseñados para usarse solo cuando la aplicación host de Microsoft Office es iniciada por un usuario final.VSTO Add-ins that you create by using the Office developer tools in Visual Studio are designed to be used only when the host Microsoft Office application is started by an end user. Si la aplicación se inicia mediante programación (por ejemplo, al usar Automatización), el complemento de VSTO podría no funcionar según lo esperado.If the application is started programmatically (for example, by using Automation), the VSTO Add-in might not work as expected.

Componentes de los complementos de VSTOComponents of VSTO Add-ins

Aunque el ensamblado del complemento de VSTO es el componente principal, hay otros componentes que desempeñan un papel importante en la forma en que las aplicaciones de Microsoft Office detectan y cargan complementos de VSTO.Although the VSTO Add-in assembly is the main component, there are several other components that play an important role in how Microsoft Office applications discover and load VSTO Add-ins.

Entradas del registroRegistry entries

Para detectar complementos de VSTO, las aplicaciones de Microsoft Office buscan en un conjunto de entradas del registro.Microsoft Office applications discover VSTO Add-ins by looking for a set of registry entries. Para obtener una lista completa de las entradas del registro utilizado por los complementos de VSTO, consulte entradas del registro para complementos VSTO.For a complete list of the registry entries used by VSTO Add-ins, see Registry entries for VSTO Add-ins.

Al compilar la solución, Visual Studio crea todas las entradas del Registro necesarias en el equipo de desarrollo para que el complemento de VSTO se pueda ejecutar y depurar fácilmente.When you build your solution, Visual Studio creates all of the required registry entries on the development computer so that you can debug and run your VSTO Add-in. Para obtener más información, consulte soluciones de Office de compilación.For more information, see Build Office solutions.

Si utiliza ClickOnce para implementar la solución, el programa de instalación generado automáticamente por el proceso de publicación crea las claves del registro en el equipo del usuario final.If you use ClickOnce to deploy your solution, the Setup program generated by the publish process automatically creates the registry keys on the end user computer. Para obtener más información, consulte implementar una solución de Office mediante ClickOnce.For more information, see Deploy an Office solution by using ClickOnce.

Manifiesto de implementación y manifiesto de aplicaciónDeployment manifest and application manifest

Los complementos de VSTO usan manifiestos de implementación y manifiestos de aplicación para identificar y cargar la versión más reciente del ensamblado del complemento de VSTO.VSTO Add-ins use deployment manifests and application manifests to identify and load the most current version of the VSTO Add-in assembly. El manifiesto de implementación apunta al manifiesto de aplicación actual.The deployment manifest points to the current application manifest. El manifiesto de aplicación apunta al ensamblado del complemento de VSTO y especifica la clase de punto de entrada que se ejecutará en el ensamblado.The application manifest points to the VSTO Add-in assembly, and specifies the entry point class to execute in the assembly. Para obtener más información, consulte manifiestos de aplicación e implementación de soluciones de Office.For more information, see Application and deployment manifests in Office solutions.

Visual Studio Tools para Office RuntimeVisual Studio Tools for Office Runtime

Para ejecutar complementos de VSTO que se crean mediante Office Developer Tools en Visual Studio, los equipos de usuario final deben tener instalado Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime .To run VSTO Add-ins that are created by using the Office developer tools in Visual Studio, end user computers must have the Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime installed. El tiempo de ejecución incluye los componentes no administrados y un conjunto de ensamblados administrados.The runtime includes unmanaged components and a set of managed assemblies. Los componentes no administrados cargan el ensamblado del complemento de VSTO.The unmanaged components load the VSTO Add-in assembly. Los ensamblados administrados proporcionan el modelo de objetos que el código del complemento de VSTO usa para automatizar y extender la aplicación host.The managed assemblies provide the object model that your VSTO Add-in code uses to automate and extend the host application.

Para obtener más información, consulte Visual Studio Tools para Office runtime overview.For more information, see Visual Studio Tools for Office runtime overview.

Cómo funcionan los complementos VSTO con aplicaciones de Microsoft OfficeHow VSTO Add-ins work with Microsoft Office applications

Cuando un usuario inicia una aplicación de Microsoft Office, la aplicación usa el manifiesto de implementación y el manifiesto de aplicación para buscar y cargar la versión más reciente del ensamblado del complemento de VSTO.When a user starts a Microsoft Office application, the application uses the deployment manifest and the application manifest to locate and load the most current version of the VSTO Add-in assembly. La ilustración siguiente muestra la arquitectura básica de estos complementos de VSTO.The following illustration shows the basic architecture of these VSTO Add-ins.

Arquitectura de complemento de office de 20072007 Office add-in architecture

Nota

En soluciones de Office destinadas a .NET Framework 4.NET Framework 4 o .NET Framework 4.5.NET Framework 4.5, la solución llama al modelo de objetos de la aplicación host usando la información de tipo PIA que está incrustada en el ensamblado de la solución, en lugar de llamar directamente a los PIA.In Office solutions that target the .NET Framework 4.NET Framework 4 or the .NET Framework 4.5.NET Framework 4.5, solutions call into the object model of the host application by using PIA type information that is embedded in the solution assembly, instead of calling into the PIA directly. Para obtener más información, consulte diseño y crear soluciones de Office.For more information, see Design and create Office solutions.

Proceso de cargaLoading process

Cuando un usuario inicia una aplicación, se dan los pasos siguientes:The following steps occur when a user starts an application:

  1. La aplicación busca en el registro entradas que identifiquen complementos de VSTO que se hayan creado con Office Developer Tools en Visual Studio.The application checks the registry for entries that identify VSTO Add-ins that were created by using the Office developer tools in Visual Studio.

  2. Si encuentra estas entradas del Registro, la aplicación carga VSTOEE.dll, que a su vez carga VSTOLoader.dll.If the application finds these registry entries, the application loads VSTOEE.dll, which loads VSTOLoader.dll. Se trata de DLL no administradas que son los componentes de carga para Visual Studio 2010 Tools para Office Runtime.These are unmanaged DLLs that are the loader components for the Visual Studio 2010 Tools for Office Runtime. Para obtener más información, consulte Visual Studio Tools para Office runtime overview.For more information, see Visual Studio Tools for Office runtime overview.

  3. VSTOLoader.dll carga el .NET Framework.NET Framework e inicia la parte administrada de la Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime.VSTOLoader.dll loads the .NET Framework.NET Framework and starts the managed portion of the Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime.

  4. Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime comprueba si hay actualizaciones de manifiesto y descarga los manifiestos de aplicación e implementación más recientes.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime checks for manifest updates, and downloads the most recent application and deployment manifests.

  5. Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime realiza una serie de comprobaciones de seguridad.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime performs a series of security checks. Para obtener más información, consulte soluciones de Office seguros.For more information, see Secure Office solutions.

  6. Si se confía en el complemento de VSTO para que se ejecute, Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime usa el manifiesto de implementación y el manifiesto de aplicación para comprobar si hay actualizaciones del ensamblado.If the VSTO Add-in is trusted to run, the Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime uses the deployment manifest and application manifest to check for assembly updates. Si está disponible una nueva versión del ensamblado, el runtime descarga la nueva versión del ensamblado en la memoria caché de ClickOnceClickOnce del equipo cliente.If a new version of the assembly is available, the runtime downloads the new version of the assembly to the ClickOnceClickOnce cache on the client computer. Para obtener más información, consulte implementar una solución de Office.For more information, see Deploy an Office solution.

  7. Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime crea un nuevo dominio de aplicación en el que se va a cargar el ensamblado del complemento de VSTO.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime creates a new application domain in which to load the VSTO Add-in assembly.

  8. Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime carga el ensamblado del complemento de VSTO en el dominio de aplicación.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime loads the VSTO Add-in assembly into the application domain.

  9. Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime llama al método RequestComAddInAutomationService en el complemento de VSTO, si se ha reemplazado.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime calls the RequestComAddInAutomationService method in your VSTO Add-in, if you have overridden it.

    Si lo desea, puede invalidar este método para exponer un objeto del complemento de VSTO a otras soluciones de Microsoft Office.You can optionally override this method to expose an object in your VSTO Add-in to other Microsoft Office solutions. Para obtener más información, consulte llamar a código en complementos VSTO desde otras soluciones de Office.For more information, see Call code in VSTO Add-ins from other Office solutions.

  10. Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime llama al método RequestService en el complemento de VSTO, si se ha reemplazado.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime calls the RequestService method in your VSTO Add-in, if you have overridden it.

    Opcionalmente, puede devolver un objeto que implementa una interfaz de extensibilidad para invalidar este método y extender una característica de Microsoft Office.You can optionally override this method to extend a Microsoft Office feature by returning an object that implements an extensibility interface. Para obtener más información, consulte características de personalizar la interfaz de usuario mediante interfaces de extensibilidad.For more information, see Customize UI features by using extensibility interfaces.

    Nota

    Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime hace una llamada al método RequestService por cada interfaz de extensibilidad admitida por la aplicación host.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime makes separate calls to the RequestService method for each extensibility interface that is supported by the host application. Aunque la primera llamada al método RequestService suele hacerse antes de llamar al método ThisAddIn_Startup , el complemento de VSTO no debe hacer ninguna suposición sobre cuándo se llamará al método RequestService o cuántas veces se le llamará.Although the first call to the RequestService method usually happens before the call to the ThisAddIn_Startup method, your VSTO Add-in should not make any assumptions about when the RequestService method will be called, or how many times it will be called.

  11. Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime llama al método ThisAddIn_Startup en el complemento de VSTO.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime calls the ThisAddIn_Startup method in your VSTO Add-in. Este método es el controlador de eventos predeterminado para el evento Startup .This method is the default event handler for the Startup event. Para obtener más información, consulte eventos en proyectos de Office.For more information, see Events in Office projects.

Vea tambiénSee also

Arquitectura de soluciones de Office en Visual Studio Architecture of Office solutions in Visual Studio
Arquitectura de las personalizaciones de nivel de documento Architecture of document-level customizations
Visual Studio Tools para Office runtime overview Visual Studio Tools for Office runtime overview
Programar complementos VSTO Program VSTO Add-Ins
Desarrollar soluciones de Office Develop Office solutions
Proteger soluciones de Office Secure Office solutions
Implementar una solución de OfficeDeploy an Office solution