Visual Studio Project System Extensibility Documentation
What is a project system?
A project system sits between a project file on disk (for example, .csproj and .vbproj) and various Visual Studio features including, but not limited to, Solution Explorer, designers, the debugger, language services, build and deployment. Almost all interaction that occurs with files contained in a project file, happens through the project system.
There are three reasons to extend a project system in Visual Studio:
Support a new project file format.
Integrate existing file format with a new language service.
Customize behavior of an existing project system.
Project system extensibility
The traditional way to a build or customize a project system is to implement a set of Project System COM interfaces. Most project systems don’t start from scratch. Instead, they leverage the MPFProj project system example as a starting point.
The Visual Studio Project System (VSPS) described in this repository provides default implementation for a subset of project system COM interfaces. This simplifies building and maintaining a project system, but comes with the cost of reduced functionality.
Visual Studio 2015 (some APIs are not available in older versions and there are [breaking changes][changes] in major versions)
Visual Studio Project System
Visual Studio can be extended in many ways, including adding new types of projects and augmenting
existing ones. This repository contains the documentation and best practices for
creating extensions that add new project types to Visual Studio. We welcome community input if you
wish to contribute new topics or find any issues.
Visual Studio Project System Extensibility Documentation
What is a project system?
A project system sits between a project file on disk (for example, .csproj and .vbproj) and various Visual Studio features including, but not limited to, Solution Explorer, designers, the debugger, language services, build and deployment. Almost all interaction that occurs with files contained in a project file, happens through the project system.
There are three reasons to extend a project system in Visual Studio:
Project system extensibility
The traditional way to a build or customize a project system is to implement a set of Project System COM interfaces. Most project systems don’t start from scratch. Instead, they leverage the MPFProj project system example as a starting point.
The Visual Studio Project System (VSPS) described in this repository provides default implementation for a subset of project system COM interfaces. This simplifies building and maintaining a project system, but comes with the cost of reduced functionality.
How to select a project system platform?
Compare MPFProj and Visual Studio Project System
Visual Studio Project System
Visual Studio can be extended in many ways, including adding new types of projects and augmenting existing ones. This repository contains the documentation and best practices for creating extensions that add new project types to Visual Studio. We welcome community input if you wish to contribute new topics or find any issues.
To get started, read the introduction while you’re waiting for the pre-requisites to install.
Please file any product bugs you find on Developer Community. You may file doc bugs here.
For further information about extending Visual Studio in other ways please check out Visual Studio extensibility documentation.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.