Share via

Project Interface

Represents a project in the integrated development environment (IDE).

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)


<GuidAttribute("866311E6-C887-4143-9833-645F5B93F6F1")> _
Public Interface Project
public interface Project
public interface class Project
type Project =  interface end
public interface Project

The Project type exposes the following members.


  Name Description
Public property CodeModel Gets the CodeModel object for the project.
Public property Collection Gets the Projects collection containing the Project object supporting this property.
Public property ConfigurationManager Gets the ConfigurationManager object for this Project .
Public property DTE Gets the top-level extensibility object.
Public property Extender Gets the requested Extender object if it is available for this object.
Public property ExtenderCATID Gets the Extender category ID (CATID) for the object.
Public property ExtenderNames Gets a list of available Extenders for the object.
Public property FileName Infrastructure. Microsoft Internal Use Only.
Public property FullName Gets the full path and name of the Project object's file.
Public property Globals Gets the Globals object containing add-in values that may be saved in the solution (.sln) file, the project file, or in the user's profile data.
Public property IsDirty Infrastructure. Microsoft Internal Use Only.
Public property Kind Gets a GUID string indicating the kind or type of the object.
Public property Name Gets or sets the name of the object.
Public property Object Gets an interface or object that can be accessed by name at run time.
Public property ParentProjectItem Gets a ProjectItem object for the nested project in the host project.
Public property ProjectItems Gets a ProjectItems collection for the Project object.
Public property Properties Gets a collection of all properties that pertain to the Project object.
Public property Saved Gets or sets a value indicating whether the object has not been modified since last being saved or opened.
Public property UniqueName Gets a unique string value that allows you to differentiate between similarly named projects.



  Name Description
Public method Delete Removes the project from the current solution.Note that this method is not currently implemented.
Public method Save Saves the project or project item.
Public method SaveAs Saves the solution, project, or project item.



Every project in the solution has a project automation interface. In rare cases, this is a generic, unmodeled project implementation that returns the project's name.

Every tool in the environment that has a project has a Project object.

Reference this object by using DTE.Solution.Item or by using a specific language's objects, such as DTE.VBProjects.Item, or DTE.VCProjects.Item.


Project-specific objects such as DTE.VBProjects.Item and DTE.VCProjects.Item are located in other assemblies. Visual Basic and Visual C# project objects are located in VSLangProj, and Visual C++ project objects are located in Microsoft.VisualStudio.VCProjectEngine. See Extending Visual Basic and Visual C# Projects and Visual C++ Project Model for more information about programming against project-specific objects.


Sub ProjectExample()
' This function creates a solution and adds a Visual Basic Console
' project to it. 
   Dim soln As Solution2
   Dim proj As Project
   Dim msg As String
' Create a reference to the solution.
   soln = DTE.Solution
' Create a new solution.
   soln.Create("c:\temp2", "MyNewSolution")
' Create a new Visual Basic Console application project. 
' Adjust the save path as needed.
   Dim fileN As String
   fileN = soln.GetProjectTemplate("", "VisualBasic")
   proj = soln.AddFromTemplate(fileN, "c:\temp2", "My New Project", True)
' Save the new solution
   msg = "Created new solution: " & soln.FullName
End Sub

See Also


EnvDTE Namespace

Other Resources

Controlling Projects and Solutions