Ich versuche, einige Informationen über c + = Programme, durch Code zu bekommen. Ich hatte ein wenig Erfolg mit EnvDTE, jetzt muss ich VCProject und VCCodeModel verwenden und ich bin in Casting-Probleme (hoffe, dass das alles ...)Konnte nicht DTE, Projekt oder Lösung zu VCProject und VCCodeModel
In der Arbeiterklasse habe ich eine DTE "application"
von der Connect übergeben .
ich habe:
EnvDTE.Project project = application.SelectedItems.Item(1).Project;
EnvDTE.Solution sol = (EnvDTE.Solution)application.Solution;
Ich möchte verwenden, „projizieren“, nicht das erste Projekt in der Lösung als die Beispiele, die ich im Internet gefunden habe - wie unten - aber vor allem, würde ich gerne habe etwas, das zuerst funktioniert.
Für VCProject, habe ich versucht (off Website von Microsoft und alle anderen Web-Beispiele):
VCProject vcProject = (VCProject)application.Solution.Projects.Item(1).Object;
MessageBox.Show(vcProject.ProjectDirectory);
oder ... nur
VCProject vcProject = (VCProject)project.Object;
Für VCCodeModel, ich übersetzt C# http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.vccodemodel.vccodeinclude.aspx :
public void GetAllIncludes()
{
VCCodeModel vcCM = (VCCodeModel)application.Solution.Item(1).CodeModel;
foreach (VCCodeInclude vcInclude in vcCM.Includes)
{
MessageBox.Show(vcInclude.DisplayName);
}
}
Beide geben Ausnahme:
"unable to cast com object of type 'system.__comobject' to interface type Microsoft.VisualStudio.VCCodeModel"
"unable to cast com object of type 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectShim' to type Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProject"
Wie kann ich das einrichten? Vorzugsweise mit dem "Projekt" ... oder application.SelectedItems
... Ist es möglich?
Kann mir bitte jemand eine Idee geben? Vielen Dank.
Ich weiß, ich bin ziemlich spät hier, aber vielleicht möchten Sie sich [mein Beitrag] (http://stackoverflow.com/questions/29951353/can-one-cast-an-envdte-project- into-a-vcproject? noredirect = 1 # comment48023756_29951353) – Kraven