Condividi tramite


Interfaccia VSProject2

Aggiornamento: novembre 2007

Contiene le informazioni specifiche di un progetto di Visual Basic, Visual C# o Visual J#. Viene restituito dall'oggetto Object se il progetto specificato è un progetto di Visual Basic, Visual C# o Visual J#.

Spazio dei nomi:  VSLangProj80
Assembly:  VSLangProj80 (in VSLangProj80.dll)

Sintassi

<GuidAttribute("B1042570-25C6-424A-B58B-56FA83AA828A")> _
Public Interface VSProject2 _
    Implements VSProject

Dim instance As VSProject2
[GuidAttribute("B1042570-25C6-424A-B58B-56FA83AA828A")]
public interface VSProject2 : VSProject
[GuidAttribute(L"B1042570-25C6-424A-B58B-56FA83AA828A")]
public interface class VSProject2 : VSProject
public interface VSProject2 extends VSProject

Note

Project è un oggetto extensibility principale che può contenere informazioni sui progetti di tutti i linguaggi. La proprietà Object dell'oggetto Project restituisce un oggetto il cui tipo dipende dal linguaggio utilizzato nel progetto. Nel caso di progetti di Visual Basic, Visual C# e Visual J#, questo oggetto è un oggetto VSProject2.

La proprietà Object restituisce un tipo di dati Object. L'oggetto dati restituito dalla proprietà Object può essere convertito esplicitamente in VSProject2. L'esempio seguente dimostra tale conversione tramite la funzione CType. L'oggetto PrjKind viene utilizzato per eseguire il test del tipo di progetto prima della conversione.

Esempi

Per eseguire questo esempio come componente aggiuntivo, vedere Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione.

Per stabilire se un progetto di Visual Basic o Visual C# è un progetto per Smart Device, utilizzare le proprietà prjKindSDEVBProject e prjKindSDECSharpProject.

Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Public Sub OnConnection(ByVal application As Object,_
 ByVal connectMode As ext_ConnectMode, ByVal addInInst _
 As Object, ByRef custom As Array) Implements _
 IDTExtensibility2.OnConnection
    applicationObject = CType(application, DTE2)
    addInInstance = CType(addInInst, AddIn)
    VSProject2Example(applicationObject)
End Sub

 Sub VSProject2Example(ByVal dte As DTE2)
    Dim aProject As Project
    Dim aVSProject2 As VSProject2

    aProject = applicationObject.Solution.Projects.Item(1)
    MsgBox(aProject.Kind & aProject.Name)
    If (aProject.Kind = PrjKind.prjKindVBProject) Or_
    (aProject.Kind = PrjKind.prjKindCSharpProject) Or_
    (aProject.Kind = PrjKind2.prjKindVJSharpProject) Then
        aVSProject2 = CType(applicationObject.Solution.Projects.Item(1).Object, _
        VSProject2)
        MsgBox(aVSProject2.Project.FullName)
    Else
        MsgBox("The first project is not a Visual Basic, C# _
        or J# project.")
    End If
End Sub
// To use Messabox.Show, a reference to Windows.Forms is required.
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
public void OnConnection(object application, ext_ConnectMode
 connectMode, object addInInst, ref Array custom)
{
    applicationObject = (DTE2)application;
    addInInstance = (AddIn)addInInst;
    VSProject2Example((DTE2)applicationObject);
}

public void VSProject2Example(DTE2 dte)
{
    Project aProject = null; 
    VSProject aVSProject2 = null; 
    aProject = applicationObject.Solution.Projects.Item( 1 ); 
    MessageBox.Show( aProject.Kind + aProject.Name); 
    if ( ( aProject.Kind == PrjKind.prjKindVBProject ) |
 ( aProject.Kind == PrjKind.prjKindCSharpProject ) |
 ( aProject.Kind == PrjKind2.prjKindVJSharpProject ) ) 
    { 
        aVSProject2 = ( ( VSProject )
(applicationObject.Solution.Projects.Item( 1 ).Object ) ); 
        MessageBox.Show( aVSProject2.Project.FullName); 
    } 
    else 
    { 
        MessageBox.Show( "The first project is not a Visual Basic,
 C# or J# project."); 
    } 
}

Vedere anche

Riferimenti

Membri VSProject2

Spazio dei nomi VSLangProj80

VSProject