VSProject2-Schnittstelle
Aktualisiert: November 2007
Enthält die für ein Visual Basic-, Visual C#- oder Visual J#-Projekt spezifischen Informationen. Diese Informationen werden vom Object-Objekt zurückgegeben, wenn es sich bei dem Projekt um ein Visual Basic-, Visual C#- oder Visual J#-Projekt handelt.
Namespace: VSLangProj80
Assembly: VSLangProj80 (in VSLangProj80.dll)
Syntax
<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
Hinweise
Project ist ein zentrales Erweiterbarkeitsobjekt, das Informationen über Projekte in allen Programmiersprachen enthalten kann. Die Object-Eigenschaft des Project-Objekts gibt ein Objekt zurück, dessen Typ sich nach der verwendeten Projektsprache richtet. Im Fall von Visual Basic, Visual C# und Visual J# ist das Objekt ein VSProject2-Objekt.
Die Object-Eigenschaft gibt einen Object-Datentyp zurück. Das von der Object-Eigenschaft zurückgegebene Datenobjekt kann anschließend explizit in VSProject2 konvertiert werden. Im folgenden Beispiel wird die Konvertierung mithilfe der CType-Funktion gezeigt. Vor der Konvertierung wird der Projekttyp mit PrjKind überprüft.
Beispiele
Um dieses Beispiel als Add-In auszuführen, informieren Sie sich unter Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell.
Um festzustellen, ob es sich bei einem Visual Basic- oder Visual C#-Projekt um ein Projekt für intelligente Geräte handelt, verwenden Sie prjKindSDEVBProject und 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.");
}
}