Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The way that an application discovers and loads add-ins depends on many factors, such as which set of features you want to expose to add-ins and how you want your application to load add-ins. Before you write code to discover and load add-ins, you must consider the following design decisions.
Determining When Add-ins Will Be Loaded and Unloaded
You must define when your application loads and unloads add-ins. Knowing when add-ins will be loaded helps you determine where in your application to call into the methods for discovering and loading add-ins. Visual Studio Tools for Applications supports loading and unloading add-ins at any point during the lifetime of the application.
An application that supports application-level add-ins might load all available add-ins when the application starts, or it might enable end users to load add-ins at run timeāfor example, by clicking a menu command. An application that supports add-ins might unload all loaded add-ins when the application exits, or it might enable end users to manually unload add-ins while leaving the application open.
Determining Where to Search for Add-Ins
Visual Studio Tools for Applications can load add-in assemblies only from a hard disk location. If your host application stores an add-in assembly in another storage format, such as a database, you must copy the add-in assembly to a hard disk location before loading the add-in.
There are two main deployment models:
Directory-based deployment. In this model, the host application discovers add-ins by searching in one or more directories that are known to the host application. You can use the API provided by the .NET Framework to discover and load add-ins that use this deployment model. For more information, see Discovering and Loading Add-Ins.
ClickOnce deployment. If the host application implements a ClickOnce deployment model for add-ins, you must use one of the extension methods provided by Visual Studio Tools for Applications to discover and load add-ins. For more information, see Deploying Add-ins by Using ClickOnce.
For more information about these deployment models, see Securing and Deploying Add-Ins.
Integrating the Code That Discovers and Loads Add-ins With the Host Application
How you implement the code that discovers and loads add-ins is entirely up to you. However, the architecture of your application might impose some restrictions.
The API for discovering and loading add-ins is a managed API. Therefore, to use this API in an application that is written using unmanaged code, you must use the API in a separate managed assembly that communicates with the unmanaged host application by using COM interop.
If your application is written using managed code, you can write the code in a separate assembly that is referenced in your application, or you can add the code directly to the code base of your application.
For a walkthrough that demonstrates how to modify an application so that it discovers and loads add-ins, see Walkthrough: Modifying an Application to Load Add-Ins.
See Also
Tasks
Walkthrough: Modifying an Application to Load Add-Ins
Concepts
Discovering and Loading Add-Ins
Understanding the Add-in Pipeline in Visual Studio Tools for Applications
Preventing Unexpected Application Failures from Partially Trusted Add-Ins