Freigeben über


Solution2-Schnittstelle

Stellt alle Projekte und projektmappenweiten Eigenschaften in der integrierten Entwicklungsumgebung (IDE) dar.

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

Syntax

'Declaration
<GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")> _
Public Interface Solution2 _
    Inherits _Solution
[GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")]
public interface Solution2 : _Solution
[GuidAttribute(L"FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")]
public interface class Solution2 : _Solution
[<GuidAttribute("FA238614-FBB1-4314-A7F7-49AE8BB6C6BA")>]
type Solution2 =  
    interface 
        interface _Solution 
    end
public interface Solution2 extends _Solution

Der Solution2-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft AddIns Ruft eine AddIns-Auflistung mit allen derzeit verfügbaren Add-Ins ab, die der Projektmappe zugeordnet sind.
Öffentliche Eigenschaft Count Ruft einen Wert ab, der die Anzahl der in der Projektmappe enthaltenen Objekte angibt.
Öffentliche Eigenschaft DTE Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab.
Öffentliche Eigenschaft Extender Ruft das angeforderte Extenderobjekt ab, falls es für dieses Objekt verfügbar ist.
Öffentliche Eigenschaft ExtenderCATID Ruft die ID der Extenderkategorie (CATID) für das Objekt ab.
Öffentliche Eigenschaft ExtenderNames Ruft eine Liste der für das Objekt verfügbaren Extender ab.
Öffentliche Eigenschaft FileName Infrastruktur. Nur zur internen Verwendung von Microsoft.
Öffentliche Eigenschaft FullName Ruft den vollständigen Pfad und Namen der Objektdatei ab.
Öffentliche Eigenschaft Globals Ruft das Globals-Objekt mit den Variablenwerten ab, die in der Projektmappendatei (.sln), in der Projektdatei oder in den Profildaten des Benutzers gespeichert werden können.
Öffentliche Eigenschaft IsDirty Infrastruktur. Nur zur internen Verwendung von Microsoft.
Öffentliche Eigenschaft IsOpen Ruft einen Wert ab, der angibt, ob eine Projektmappe offen ist.
Öffentliche Eigenschaft Parent Ruft das unmittelbar übergeordnete Objekt eines Solution2-Objekts ab.
Öffentliche Eigenschaft Projects Ruft eine Auflistung aller Projekte ab, die sich derzeit in der Projektmappe befinden.
Öffentliche Eigenschaft Properties Ruft eine Auflistung aller Eigenschaften des Solution2-Objekts ab.
Öffentliche Eigenschaft Saved Ruft einen Wert ab, der angibt, ob eine Projektmappe seit dem letzten Speichern oder Öffnen nicht geändert wurde, oder legt diesen Wert fest.
Öffentliche Eigenschaft SolutionBuild Ruft das SolutionBuild-Objekt für die Projektmappe ab, das den Stamm des Buildautomatisierungsmodells auf Projektmappenebene darstellt.
Öffentliche Eigenschaft TemplatePath Ersetzt durch GetProjectTemplate.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode AddFromFile Fügt basierend auf einer bereits im System gespeicherten Projektdatei ein Projekt zur Projektmappe hinzu.
Öffentliche Methode AddFromTemplate Kopiert eine vorhandene Projektdatei sowie alle darin enthaltenen Elemente oder Unterverzeichnisse in den angegebenen Pfad und fügt sie zur Projektmappe hinzu.
Öffentliche Methode AddSolutionFolder Fügt einen Projektmappenordner einer ProjectItems-Auflistung hinzu.
Öffentliche Methode Close Schließt die aktuelle Projektmappe.
Öffentliche Methode Create Erstellt eine leere Projektmappemit dem angegebenen Namen im angegebenen Verzeichnis.
Öffentliche Methode FindProjectItem Sucht ein Element in einem Projekt.
Öffentliche Methode GetEnumerator Gibt eine Enumeration für Elemente in einer Auflistung zurück.
Öffentliche Methode GetProjectItemTemplate Gibt einen Pfad zur angegebenen Projektelementvorlage zurück.
Öffentliche Methode GetProjectTemplate Gibt einen Pfad zur angegebenen Projektvorlage zurück.Wenn eine Vorlage ein RequiredFrameworkVersions-Element höher als 4,0 ist, können Sie die Version im Aufruf bereitstellen, damit die Suche für die Vorlage eine Übereinstimmung findet.Anstatt, GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip", "CSharp") aufzurufen; Aufruf GetProjectTemplate("Extensibility\\1033\\VSIXProject.zip|FrameworkVersion=4.5", "CSharp");.
Öffentliche Methode Item Gibt einen indizierten Member einer Projects-Auflistung zurück.
Öffentliche Methode Open Öffnet eine angegebene Projektmappe.
Öffentliche Methode ProjectItemsTemplatePath Ersetzt durch GetProjectItemTemplate.
Öffentliche Methode Remove Entfernt das angegebene Projekt aus der Projektmappe.
Öffentliche Methode SaveAs Speichert die Projektmappe.

Zum Seitenanfang

Hinweise

Diese Schnittstelle enthält eine Auflistung aller Projekte in der aktuellen Instanz der IDE und aller projektmappenweiten Eigenschaften, z. B. Buildkonfigurationen. Es enthält unabhängig davon, ob es sich um ein umschlossenes Projekt, ein Unterprojekt oder ein Projekt auf oberster Ebene handelt, für jedes Projekt ein Projektelement.

Sie können die geöffnete Projektmappe mithilfe der DTE.Solution-Eigenschaft bestimmen. Verwenden Sie Solution.Item(EnvDTE.Constants.vsProjectKindMisc oder Solution.Item(EnvDTE.Constants.vsProjectKindSolutionItems, um auf virtuelle Projekte wie MiscFiles oder SolutionItems zu verweisen.

Beispiele

Informationen zum Ausführen des Add-In-Codes finden Sie unter Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell.

Im folgenden Code wird eine neue Konsolenanwendungsprojektmappe im angegebenen Pfad erstellt.

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)
    SolutionExample(_applicationObject)
End Sub

Sub SolutionExample(ByVal dte As DTE2)
    ' This function creates a solution and adds a Visual Basic Console
    ' project to it.
    Try
        Dim soln As Solution2 = CType(DTE.Solution, Solution2)
        Dim vbTemplatePath As String
        ' This path must exist on your computer.
        ' Replace <file path> below with an actual path.
        Dim vbPrjPath As String = <file path>
        MsgBox("starting")
        ' Get the project template path for a Visual Basic console application project.
        vbTemplatePath = soln.GetProjectTemplate _
        ("ConsoleApplication.zip", "VisualBasic")
        ' Create a new Visual Baic Console project using the template obtained 
        ' above.
        soln.AddFromTemplate(vbTemplatePath, vbPrjPath, _
        "New Visual Basic Console Project", False)
        MsgBox("done")
    Catch ex As System.Exception
        MsgBox(ex.ToString)
    End Try
End Sub
//you will need to add this reference to your project as well
using System.Windows.Forms;  

public void OnConnection(object application,
 Extensibility.ext_ConnectMode connectMode, object addInInst,
 ref System.Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    // Pass the applicationObject member variable to the code example.
    SolutionExample((DTE2)_applicationObject);
}

public void SolutionExample(DTE2 dte)
{
    // This function creates a solution and adds a Visual C# Console
    // project to it.
    try{
        Solution2 soln = (Solution2)_applicationObject.Solution;
        String csTemplatePath;
        // The file path must exist on your computer.
        // Replace <file path> below with an actual path.
        String csPrjPath = <file path>;
    MessageBox.Show("Starting...");
csTemplatePath = 
soln.GetProjectTemplate("ConsoleApplication.zip", "CSharp");
        // Create a new C# Console project using the template obtained 
        // above.
        soln.AddFromTemplate(csTemplatePath, csPrjPath,
 "New CSharp Console Project", false);
        MessageBox.Show("Done!");
    }
    catch(SystemException ex)
    {
        MessageBox.Show("ERROR: " + ex);
    }
}

Siehe auch

Referenz

EnvDTE80-Namespace