We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.


A service is a contract between two VSPackages. One VSPackage offers a specific set of interfaces for another VSPackage to consume. For example, Visual Studio offers the SVsActivityLog service to any VSPackage it loads. This service provides the IVsActivityLog interface, which can be used to write to the activity log. For more information, see How to: Use the Activity Log.

Service Essentials

Presents the important elements of a Visual Studio service.

Registering Services

Explains how to register a global service.

How to: Consume a Service

Discusses how to request (consume) a service.

How to: Provide a Service

Discusses how to provide a service.

How to: Troubleshoot Services

Discusses common problems and presents solutions to them.

How to: Use GetGlobalService

Shows how to use GetGlobalService to obtain a service for a VSPackage that has not been sited, a tool window, or a control container.

How to: Get a Service from a Background Thread (C++)

Explains how to marshal a service into a stream so that it can be accessed by a background thread.

How to: Get a Service from the DTE Object

Explains how to obtain a service from a program that has access to the Visual Studio Automation DTEClass object.

List of Available Services

Lists the most popular services.

Services Used in Samples

Lists popular services and the samples that contain them.

Visual Studio Extensibility Samples

Services samples you can load in Visual Studio.

Visual Studio IDE Architecture

Describes Visual Studio and its IDE, and introduces strategies and techniques for extending the IDE.