Create project types

You can extend Visual Studio by creating a new project type. To create a new project type, you must understand several concepts and complete a number of steps. The following topics provide an overview of how to create project types.

In this section

Discusses the item, project file persistence, and commitment mechanic design decisions that you have to make before creating a new project type.

Provides an overview of the steps that you must follow to create a new project type that supports such programming tasks as editing code and compiling, building, debugging, and deploying applications in your project.

Provides information about how to provide and use a project factory to create instances of a new project.

Provides code samples of statements from the registry that provide default paths and data, and a table that contain entries from the registry script for each statement.

Discusses the use of IPersistFileFormat to persist both file and non-file-based project objects.

Describes how your project type can use the MSBuild build engine to let users build from Visual Studio and at the command line.

Explains the architecture of code viewing tools such as the Object Browser and Class View window. Describes the interfaces and methods that are used to implement object browsing in a VSPackage.

Discusses the significance that projects play in determining which editor is used when a project item is opened and how project resources can be manipulated.

Shows how to give your VSPackage its own unique identity and how to wrap your VSPackage DLLs and other information in a Windows Installer package (.MSI file) for deployment to your customers.

Describes how Visual Studio views and addresses hierarchies.

Provides an overview of a VSPackage, an installable COM object that extends the Visual Studio environment and discusses how to implement your own VSPackage.

Discusses how to use projects to modify code, compile and build code, and run and debug code, and provides links to detailed topics about how to create project types.