Share via


Project.DTE Property

Gets the top-level extensibility object.

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

Syntax

'Declaration
ReadOnly Property DTE As DTE
DTE DTE { get; }
property DTE^ DTE {
    DTE^ get ();
}
abstract DTE : DTE
function get DTE () : DTE

Property Value

Type: EnvDTE.DTE
A DTE object.

Remarks

In Visual Studio, the DTE object is the root of the automation model, which other object models often call "Application."

Examples

Public Sub CodeExample(ByVal dte As DTE2) 
    Try
        ' Open a project before running this sample.
        Dim prj As Project = dte.Solution.Projects.Item(1)
        Dim prjs As Projects
        Dim msg2 As String = "Global Variables:"
        Dim msg As String
        msg = "FileName: " + prj.FileName
        msg += vbCrLf + "FullName: " + prj.FullName
        msg += vbCrLf + "Project-level access to " + prj.CodeModel.CodeElements.Count.ToString() + " CodeElements through the CodeModel"
        prjs = prj.Collection
        msg += vbCrLf + "There are " + prjs.Count.ToString() + " projects in the same collection."
        msg += vbCrLf + "Application containing this project: " + prj.DTE.Name
        If prj.Saved Then
            msg += vbCrLf + "This project has not been modified since the last save."
        Else
            msg += vbCrLf + "This project has been modified since the last save."       
        End If
        msg +=  vbCrLf + "Properties:"
        Dim prop As [Property]
        For Each prop In  prj.Properties
            msg += vbCrLf + "  " + prop.Name
        Next prop
        Dim s As String
        For Each s In  CType(prj.Globals.VariableNames, Array)
            msg2 += vbCrLf + "  " + s
        Next s
        
        MessageBox.Show(msg, "Project Name: " + prj.Name)
        MessageBox.Show(msg2)
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub
public void CodeExample(DTE2 dte)
{  
    try
    {   // Open a project before running this sample.
        Project prj = dte.Solution.Projects.Item(1);
        Projects prjs;
        string msg, msg2 = "Global Variables:";
        msg = "FileName: " + prj.FileName;
        msg += "\nFullName: " + prj.FullName;
        msg += "\nProject-level access to " + prj.CodeModel.CodeElements.Count.ToString() +
            " CodeElements through the CodeModel";
        prjs = prj.Collection;
        msg += "\nThere are " + prjs.Count.ToString() + " projects in the same collection.";
        msg += "\nApplication containing this project: " + prj.DTE.Name;
        if (prj.Saved)
            msg += "\nThis project hasn't been modified since the last save.";
        else
            msg += "\nThis project has been modified since the last save.";
        msg += "\nProperties: ";
        foreach (Property prop in prj.Properties)
        {
            msg += "\n  " + prop.Name;
        }
        foreach (String s in (Array)prj.Globals.VariableNames)
        {
            msg2 += "\n  " + s;
        }

        MessageBox.Show(msg, "Project Name: " + prj.Name);
        MessageBox.Show(msg2);
    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

.NET Framework Security

See Also

Reference

Project Interface

EnvDTE Namespace

Other Resources

How to: Compile and Run the Automation Object Model Code Examples