2010-12-05 5 views

Antwort

1

Soweit ich das beurteilen kann, um DTE.Window.CreateToolWindow2 Sie müssen in einer Baugruppe (see MSDN) ein Usercontrol Klasse $ zu nennen. Das macht es sehr hart von PowerShell sinnvoll zu machen - ich meine, Sie können C#/VB-Code mit Add-Type kompilieren, aber es macht nicht viel Sinn, PowerShell zu beteiligen.

Sie können erstellen WPF UI mit PowerBoots wie Oisin vorgeschlagen, aber das neue ToolWindow Zeug scheint wirklich eine Montage erforderlich.

+0

Wenn es möglich wäre, ein Stück C# -Code von PowerShell verwenden, wäre es auch gut. Wir versuchen, die meisten Codierungen so zu gestalten, dass Entwickler Probleme auf ihren Rechnern beheben können, ohne dass das Visual Studio SDK installiert sein muss. –

+0

Ich verschwendete fünf oder sechs Stunden damit, einen Weg zu finden, wie das funktioniert, aber es scheint, als ob Sie die Assembly wirklich brauchen, damit CreateToolWindow oder FindToolWindow richtig funktionieren. Ich spiele mit der Idee, eine "ScriptToolWindow" -Klasse als kompiliertes Binärmodul zu erstellen. – Jaykul

+0

es war keine Zeitverschwendung; du hast es geliebt. :) – x0n

0

Werfen Sie einen Blick auf http://powerboots.codeplex.com zum Erstellen WPF-basierten UI in Powershell.

-Oisin

+0

Ich habe PowerBoots versucht. Verwenden Sie PowerBoots lieber für Erweiterungen in Visual Studio. Ich möchte aber auch, dass das erstellte Fenster sich wie ein Werkzeugfenster verhält, das angedockt werden kann. Wäre toll, ein Stück Code zu haben (kann in C# sein, weil es generisch ist), um leere Werkzeugfenster zu erzeugen, die verwendet werden können, um von PowerBoots gesteuerte WPFs zu hosten. Ich habe ein Problem mit PowerBoots, die Generierung der Klassen im laufenden Betrieb und welche Assembly in welcher Version von Visual Studio verwendet werden soll. Ich hatte auch Probleme mit PowerBoots von einem PowerShell 1.0-Host, den wir derzeit in Visual Studio verwenden. Ist nicht STA. –

+0

PowerBoots v0.2 benötigt keine STA. – x0n

+0

Ok, cool. Werde es ausprobieren. –