Architecture des compléments VSTOArchitecture of VSTO Add-ins

Les compléments VSTO créés à l'aide des Outils de développement Office dans Visual Studio ont des fonctionnalités en termes d'architecture qui mettent l'accent sur la stabilité et la sécurité, et qui leur permettent de fonctionner étroitement avec 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. Cette rubrique décrit les aspects suivants des compléments VSTO :This topic describes the following aspects of VSTO Add-ins:

Présentation des compléments VSTOUnderstanding VSTO Add-ins

Quand vous utilisez les Outils de développement Office dans Visual Studio pour générer un complément VSTO, vous créez un assembly de code managé chargé par une application 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. Une fois l’assembly chargé, le complément VSTO peut répondre aux événements déclenchés dans l’application (par exemple, quand un utilisateur clique sur un élément de menu).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). Le complément VSTO peut également exécuter un appel dans le modèle objet pour automatiser et étendre l’application. En outre, il peut utiliser toutes les classes du .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.

L'assembly communique avec les composants COM de l'application à travers l'assembly PIA (Primary Interop Assembly) de celle-ci.The assembly communicates with the application's COM components through the primary interop assembly of the application. Pour plus d’informations, consultez assemblys PIA Office et présentation du développement de Solutions Office (VSTO).For more information, see Office Primary Interop Assemblies and Office Solutions Development Overview (VSTO).

Si plusieurs compléments VSTO sont installés pour une même application, chaque complément VSTO est chargé dans un domaine d’application différent.If multiple VSTO Add-ins are installed for an application, each VSTO Add-in is loaded in a different application domain. Cela signifie qu’un complément VSTO dont le fonctionnement est incorrect ne peut pas entraîner la défaillance d’autres compléments VSTO.This means that one VSTO Add-in that behaves incorrectly cannot cause other VSTO Add-ins to fail. Cela permet également de vérifier que tous les assemblys du complément VSTO sont déchargés de la mémoire à la fermeture de l’application.It also helps to ensure that when the application is closed, all the VSTO Add-in assemblies are unloaded from memory. Pour plus d’informations sur les domaines d’application, consultez domaines d’Application.For more information about application domains, see Application Domains.

Note

Les compléments VSTO que vous créez à l'aide des Outils de développement Office dans Visual Studio sont conçus pour être utilisés seulement quand l'application Microsoft Office hôte est démarrée par un utilisateur 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 l’application est démarrée par programmation (par exemple, à l’aide d’Automation), le complément VSTO risque de ne pas fonctionner correctement.If the application is started programmatically (for example, by using Automation), the VSTO Add-in might not work as expected.

Composants des compléments VSTOComponents of VSTO Add-ins

Bien que l’assembly du complément VSTO soit le composant principal du complément, il existe plusieurs autres composants qui jouent un rôle important dans la manière dont les applications Microsoft Office découvrent et chargent les compléments 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.

Entrées de RegistreRegistry Entries

Les applications Microsoft Office découvrent des compléments VSTO en recherchant un jeu d'entrées du Registre.Microsoft Office applications discover VSTO Add-ins by looking for a set of registry entries. Pour obtenir une liste complète des entrées de Registre utilisées par les Compléments VSTO, consultez les entrées de Registre pour les Compléments VSTO.For a complete list of the registry entries used by VSTO Add-ins, see Registry Entries for VSTO Add-ins.

Quand vous générez votre solution, Visual Studio crée toutes les entrées de Registre obligatoires sur l’ordinateur de développement pour que vous puissiez déboguer et exécuter votre complément VSTO.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. Pour plus d’informations, consultez génération de Solutions Office.For more information, see Building Office Solutions.

Si vous utilisez ClickOnce pour déployer votre solution, le programme d'installation généré par le processus de publication crée automatiquement les clés de Registre sur l'ordinateur de l'utilisateur 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. Pour plus d’informations, consultez déploiement d’une Solution Office à l’aide de ClickOnce.For more information, see Deploying an Office Solution by Using ClickOnce.

Manifeste de déploiement et manifeste d'applicationDeployment Manifest and Application Manifest

Les compléments VSTO utilisent des manifestes de déploiement et des manifestes d’application pour identifier et charger la version la plus récente de l’assembly du complément VSTO.VSTO Add-ins use deployment manifests and application manifests to identify and load the most current version of the VSTO Add-in assembly. Le manifeste de déploiement pointe vers le manifeste d'application actuel.The deployment manifest points to the current application manifest. Le manifeste de l’application pointe vers l’assembly du complément VSTO et spécifie la classe de point d’entrée à exécuter dans l’assembly.The application manifest points to the VSTO Add-in assembly, and specifies the entry point class to execute in the assembly. Pour plus d'informations, consultez Application and Deployment Manifests in Office Solutions.For more information, see Application and Deployment Manifests in Office Solutions.

Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office Runtime

Pour pouvoir exécuter des compléments VSTO créés à l'aide des Outils de développement Office dans Visual Studio, Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime doit être installé sur les ordinateurs des utilisateurs finaux.To run VSTO Add-ins that are created by using the Office developer tools in Visual Studio, end user computers must have the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime installed. Le runtime inclut des composants non managés et un jeu d'assemblys managés.The runtime includes unmanaged components and a set of managed assemblies. Les composants non managés chargent l’assembly du complément VSTO.The unmanaged components load the VSTO Add-in assembly. Les assemblys managés fournissent le modèle objet que votre code de complément VSTO utilise pour automatiser et étendre l’application hôte.The managed assemblies provide the object model that your VSTO Add-in code uses to automate and extend the host application.

Pour plus d'informations, consultez Visual Studio Tools for Office Runtime Overview.For more information, see Visual Studio Tools for Office Runtime Overview.

How VSTO Add-ins Work with Microsoft Office ApplicationsHow VSTO Add-ins Work with Microsoft Office Applications

Quand un utilisateur démarre une application Microsoft Office, l’application utilise le manifeste de déploiement et le manifeste de l’application pour trouver et charger la version la plus récente de l’assembly du complément 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. L'illustration suivante montre l'architecture de base de ces compléments VSTO.The following illustration shows the basic architecture of these VSTO Add-ins.

Architecture de complément office 20072007 Office add-in architecture

Note

Dans les solutions Office qui ciblent le .NET Framework 4.NET Framework 4 ou le .NET Framework 4.5.NET Framework 4.5, les solutions exécutent un appel dans le modèle objet de l'application hôte à l'aide de les informations de type d'assembly PIA incorporées dans l'assembly de solution, au lieu d'exécuter un appel dans l'assembly PIA directement.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. Pour plus d'informations, consultez Designing and Creating Office Solutions.For more information, see Designing and Creating Office Solutions.

Processus de chargementLoading Process

Les étapes suivantes se produisent quand un utilisateur démarre une application :The following steps occur when a user starts an application:

  1. L'application vérifie dans le Registre les entrées qui identifient des compléments VSTO créés à l'aide des Outils de développement Office dans 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 l'application trouve de telles entrées, elle charge VSTOEE.dll, qui charge à son tour VSTOLoader.dll.If the application finds these registry entries, the application loads VSTOEE.dll, which loads VSTOLoader.dll. Il s'agit de DLL non managées qui sont les composants du chargeur pour Visual Studio 2010 Tools pour Office Runtime.These are unmanaged DLLs that are the loader components for the Visual Studio 2010 Tools for Office Runtime. Pour plus d'informations, consultez Visual Studio Tools for Office Runtime Overview.For more information, see Visual Studio Tools for Office Runtime Overview.

  3. VSTOLoader.dll charge le .NET Framework.NET Framework et démarre la partie managée de Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime.VSTOLoader.dll loads the .NET Framework.NET Framework and starts the managed portion of the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime.

  4. Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime recherche des mises à jour de manifeste et télécharge l'application et les manifestes de déploiement les plus récents.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime checks for manifest updates, and downloads the most recent application and deployment manifests.

  5. Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime effectue une série de vérifications de sécurité.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime performs a series of security checks. Pour plus d'informations, consultez Securing Office Solutions.For more information, see Securing Office Solutions.

  6. Si l’exécution du complément VSTO est approuvée, Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime utilise le manifeste de déploiement et le manifeste de l’application pour rechercher des mises à jour de l’assembly.If the VSTO Add-in is trusted to run, the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime uses the deployment manifest and application manifest to check for assembly updates. Si une nouvelle version de l'assembly est disponible, le runtime la télécharge dans le cache de ClickOnceClickOnce sur l'ordinateur client.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. Pour plus d’informations, consultez déploiement d’une Solution Office.For more information, see Deploying an Office Solution.

  7. Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime crée un domaine d’application dans lequel charger l’assembly du complément VSTO.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime creates a new application domain in which to load the VSTO Add-in assembly.

  8. Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime charge l’assembly du complément VSTO dans le domaine d’application.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime loads the VSTO Add-in assembly into the application domain.

  9. Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime appelle la méthode RequestComAddInAutomationService dans votre complément VSTO, si vous l’avez substituée.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime calls the RequestComAddInAutomationService method in your VSTO Add-in, if you have overridden it.

    Vous pouvez éventuellement substituer cette méthode pour exposer un objet de votre complément VSTO à d’autres solutions Microsoft Office.You can optionally override this method to expose an object in your VSTO Add-in to other Microsoft Office solutions. Pour plus d'informations, consultez Appel de code dans des compléments VSTO à partir d'autres solutions Office.For more information, see Calling Code in VSTO Add-ins from Other Office Solutions.

  10. Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime appelle la méthode RequestService dans votre complément VSTO, si vous l’avez substituée.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime calls the RequestService method in your VSTO Add-in, if you have overridden it.

    Vous pouvez éventuellement substituer cette méthode pour étendre une fonctionnalité Microsoft Office en retournant un objet qui implémente une interface d'extensibilité.You can optionally override this method to extend a Microsoft Office feature by returning an object that implements an extensibility interface. Pour plus d'informations, consultez Customizing UI Features By Using Extensibility Interfaces.For more information, see Customizing UI Features By Using Extensibility Interfaces.

    Note

    Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime effectue des appels séparés à la méthode RequestService pour chaque interface d'extensibilité prise en charge par l'application hôte.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime makes separate calls to the RequestService method for each extensibility interface that is supported by the host application. Bien que le premier appel à la méthode RequestService se produise généralement avant l’appel à la méthode ThisAddIn_Startup , votre complément VSTO ne doit pas établir d’hypothèses concernant le moment où la méthode RequestService est appelée, ou le nombre de fois où elle est appelée.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. Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime appelle la méthode ThisAddIn_Startup de votre complément VSTO.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime calls the ThisAddIn_Startup method in your VSTO Add-in. Cette méthode est le gestionnaire d'événements par défaut pour l'événement Startup .This method is the default event handler for the Startup event. Pour plus d'informations, consultez Events in Office Projects.For more information, see Events in Office Projects.

Voir aussiSee Also

Architecture des Solutions Office dans Visual Studio Architecture of Office Solutions in Visual Studio
Architecture des personnalisations au niveau du Document Architecture of Document-Level Customizations
Vue d’ensemble de Visual Studio Tools pour Office Runtime Visual Studio Tools for Office Runtime Overview
Programming VSTO Add-Ins Programming VSTO Add-Ins
Développement de Solutions Office Developing Office Solutions
Sécurisation des Solutions Office Securing Office Solutions
Déploiement d’une solution OfficeDeploying an Office Solution