2012-05-13 9 views
5

Ich erstelle ein Visual Studio 2010-Erweiterungspaket (Microsoft.VisualStudio.Shell.Package), das alle Projekte und die Referenzen dieses Projekts analysieren muss. Ich würde annehmen, dass dies mit einem Dienst getan wird (z. B.). Was ich brauche, ist die Schnittstelle, die die Funktionalität enthält, um eine Liste von Projekten und Referenzen für diese Projekte zu erhalten. Auch Ratschläge, wo Sie eine Referenz finden können, die die verfügbaren Schnittstellen im Visual Studio enthält, wären sehr willkommen.Eine Liste von Projekten/Referenzen innerhalb einer Visual Studio 2010-Erweiterung abrufen

Beachten Sie, dass ich mehrere Personen gesehen habe, die versuchen, etwas Ähnliches mit DTE aus einem Makro zu tun. Das versuche ich nicht. Ich versuche, dasselbe in einer Visual Studio-Erweiterung zu tun.

Antwort

7

Obwohl Sie dies als Teil einer Erweiterung ausführen, müssen Sie dennoch die DTE-APIs verwenden, um alle gewünschten Informationen zu erhalten. Es mag rückwärts scheinen, aber so funktioniert es. Sie sollten das DTE-Objekt über (EnvDTE.DTE)Package.GetService(typeof(SDTE)) greifen. Sobald Sie einen EnvDTE.Project haben, greifen Sie auf seinen Objekt-Member zu und wandeln Sie ihn in ein VSLangProj.VSProject um, wenn es sich um ein C# - oder VB-Projekt handelt. Dies enthält die Referenzinformationen, die Sie benötigen.

+0

Das scheint ein bisschen seltsam, aber ich habe deine Antwort bestätigt. Vielen Dank! –

+0

Ja, die einzige Möglichkeit, die Informationen zuverlässig zu erhalten, ist über DTE. Es ist albern und rückwärts, aber so funktioniert es. –

+0

Manchmal werden Sie nicht alle Projekte erhalten: http://stackoverflow.com/questions/33209589/project-names-in-visual-studio-solution-sometimes-are-empty – alerya