When to Create Project Types

Note

This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

Creating a new project type provides a basis for customizing Visual Studio for your users. However, creating a new project type is not required for all Visual Studio customizations. The following guidelines should help you determine whether a new project type is required for your scenario.

Create a New Project Type

You must create a project type if you want to customize Visual Studio to act in one or more of the following ways:

  • Participate in build, deploy, configurations, and source control.

  • Offer debugging support.

  • Display project items in Solution Explorer.

  • Use the Open Project or New Project dialog box.

  • Support project nesting.

Extend an Existing Project Type

You might want to create a new project type that can use Visual Studio in the following ways to modify or extend the behavior of an existing project type, for example, modifying the build process for Visual C++ projects:

  • Work with multiple files as a single unit.

  • Display a single file as a hierarchy of sub-items.

  • Display a command context around editors.

  • Display a service context for editors.

Use an Existing Project Type

Creating a new project is sometimes not necessary. The following table shows the tasks that you do not have to create a project type for.

Task Description
Handling commands Any VSPackage can handle commands.
Building an editor Custom editors can be registered. For more information, see Document Windows and Editors.
Owning windows You can create both tool and document windows without adding a new project type.
Exposing properties in the Properties window All objects can expose properties.

Create a Project Subtype

You can use project subtypes to extend a managed project type without having to create a new project type. Project subtypes use COM aggregation to extend managed projects written in Microsoft Visual Basic or Visual C#. With COM aggregation, you can reuse much of the managed project system implementation and still customize for a particular scenario through aggregation and the use of supporting interfaces. For more information about project subtypes, see Project Subtypes.

See Also

Document Windows and Editors
Checklist: Creating New Project Types
Hierarchies in Visual Studio