Controlling Projects and Solutions

The Visual Studio automation model provides objects and collections that enable you to control the solution, projects, and the project items within the project, regardless of the programming language in which the application was written.

In addition to this core, language-agnostic project automation model, each programming language has its own project automation model which provides access to features unique to that language.

Objects and Collections

  • The Solution2 object and the Projects collection (which is returned by Projects and Projects) contain a reference to the solution, as well as references to all projects in that solution, respectively.

  • The ProjectItems collection represents all items contained in a project (Project), with the exception of virtual projects. The ProjectItem object represents individual items within the project.

A virtual project is one that is not associated with a particular project but is rather associated with the solution. A solution can contain two additional virtual projects: the Solution Items and the Miscellaneous Files projects.

To learn more about

See

Controlling the solution, and projects within the solution.

Controlling the Solution and Its Projects

How to programmatically create solution and project build configurations.

How to: Create Solution and Project Build Configurations

Dealing with projects that do not support the Visual Studio automation model.

Unmodeled Projects Overview

Working with the virtual projects — Solution Items and Miscellaneous Items projects.

Working with Solution Items and Miscellaneous Items

Saving solution and project variable values between integrated development environment (IDE) sessions.

Persisting Information in Projects and Solutions

Manipulating Solution Explorer.

How to: Control Solution Explorer

Controlling Visual Basic and Visual C# projects.

Introduction to Project Extensibility

Controlling Visual C++ projects.

Microsoft.VisualStudio.VCProject and Microsoft.VisualStudio.VCProjectEngine.

See Also

Tasks

How to: Add and Handle Commands

How to: Create an Add-In

Walkthrough: Creating a Wizard

Concepts

Solution and Project Basics

Automation Object Model Chart

Other Resources

Creating and Controlling Environment Windows

Creating Add-ins and Wizards

Automation and Extensibility Reference