Frage

Mein Projekt hat sowohl Client- und Serverkomponenten in der gleichen Lösung Datei. Ich habe in der Regel den Debugger festgelegt, sie gemeinsam zu starten, wenn das Debuggen, aber es ist oft der Fall, dass ich den Server außerhalb des Debuggers gestartet, so kann ich starten und den Client stoppen je nach Bedarf, wenn auf Client-Seite arbeiten nur Sachen. (Dies ist viel schneller).

Ich versuche, mir die Mühe zu stochern in Projektmappen-Explorer zu speichern einzelne Projekte zu starten und würde lieber nur eine Schaltfläche in der Symbolleiste halten, die einen Makro aufruft, die den Debugger für einzelne Projekte beginnen (während „F5“ Typen verlassen allein das Debuggen sowohl processess zu starten).

Ich habe versucht, die Aufnahme, aber das führte nicht wirklich in etwas Sinnvolles.

Bisher alles, was ich habe es geschafft, zu tun ist, um das Projekt Element in der Lösung Explorer zu finden:

 Dim projItem As UIHierarchyItem

 projItem = DTE.ToolWindows.SolutionExplorer.GetItem("SolutionName\ProjectFolder\ProjectName").Select(vsUISelectionType.vsUISelectionTypeSelect)

(Dies basiert lose auf, wie der Makro-Recorder versucht, es zu tun. Ich bin mir nicht sicher, ob das UI-Objektmodell der Navigation ist der richtige Ansatz, oder wenn ich gehen durch die Lösung / Project-Objektmodell suchen sollte statt ).

War es hilfreich?

Lösung

Ok. Dies scheint von den meisten UI zu arbeiten (? Alle) Kontexte zur Verfügung gestellt wird die Lösung geladen:

 Sub DebugTheServer()
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
    DTE.ActiveWindow.Object.GetItem("Solution\ServerFolder\ServerProject").Select(vsUISelectionType.vsUISelectionTypeSelect)
    DTE.Windows.Item(Constants.vsWindowKindOutput).Activate()
    DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Debug.Startnewinstance")
 End Sub

Andere Tipps

Von einer C # Add-in, die für mich gearbeitet folgende:

Dte.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate();
Dte.ToolWindows.SolutionExplorer.GetItem("SolutionName\\SolutionFolderName\\ProjectName").Select(vsUISelectionType.vsUISelectionTypeSelect);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top