- Introduction
- Your obligations as a project system extender
- Prerequisites
- Define a new project type
- Extend/flavor an existing project type
- Reference implementations
- Overview
- CPS Core vs. CPS VS
- MEF
- Scopes
- Project Capabilities
- Dynamic Capabilities
- Interfaces defined on IVsProject object
- Interfaces NOT defined on IVsProject object
- The Project Lock
- Project configurations
- Content/item types
- Accessing IVsHierarchy from CPS
- Responsive design
- Globbing behavior
- Dataflow
- Diagnostics
- Threading model
- Clients / Automation
- Detect whether a project is a CPS project
- Finding CPS in a VS project
- Obtaining the IProjectService/ProjectService
- Obtaining the IProjectLockService
- Obtaining the IProjectThreadingService service
- Obtaining the MSBuild.Project from CPS
- Query output groups
- Subscribe to project data
- Notification for async project load completion
- Sync up shims to latest project model
- Add a source item with specific item type
- Behavioral differences between CPS and other project systems
- Extensibility points
- Item Templates
- Custom item types
- Custom reference types
- IDebugLaunchProvider
- IDeployProvider
- Properties
- IBuildUpToDateCheckProvider
- IsDocumentInProject
- Automatic DependentUpon wire-up
- Command handlers
- IProjectTreeProvider
- IProjectTreePropertiesProvider
- IPublishProvider
- IProfilableProjectProvider
- Clipboard
- IValidProjectReferenceChecker
- IProjectSourceItemProviderExtension
- IProjectItemContextMenuProvider
- IProjectPropertiesProvider
- IProjectGlobalPropertiesProvider
- IFileSystemErrorMessageProvider
- IBuildLoggerProvider
- IProjectCapabilitiesProvider
- Reference Manager
- How do I?
- Breaking changes