我試圖運行下面的代碼(我從here得到)。該代碼只是在Visual Studio中創建一個新的「輸出」窗格並向其寫入幾行內容。從控制檯應用程序自動化Visual Studio 2010
Public Sub WriteToMyNewPane()
Dim win As Window = _
dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
Dim ow As OutputWindow = win.Object
Dim owPane As OutputWindowPane
Dim cnt As Integer = ow.OutputWindowPanes.Count
owPane = ow.OutputWindowPanes.Add("My New Output Pane")
owPane.Activate()
owPane.OutputString("My text1" & vbCrLf)
owPane.OutputString("My text2" & vbCrLf)
owPane.OutputString("My text3" & vbCrLf)
End Sub
而不是運行它作爲一個宏觀的,我要運行它連接到Visual Studio 2010中我有一個很難搞清楚如何設置的當前運行的實例一個獨立的控制檯應用程序值爲dte。我想我可能需要調用GetActiveObject,但我不知道如何。任何指針?
這似乎是一個非常不尋常的要求。你想達到什麼目的?假設它甚至是可能的,這將如何與VS 2010的兩個或更多運行實例一起工作? 如果你真的需要VS與外部操作系統進程進行通信,請考慮編寫一個自定義擴展,它使用命名管道,WCF,原始套接字等與另一個進程進行交互。 – 2010-05-17 18:24:21
@Simon,我想你是誤解......我不希望VS與另一個進程通信...我想要一個控制檯應用程序(一個非常簡單的)與當前正在運行的VS實例進行通信。這似乎是自動化正在運行的應用程序的一個非常標準的情況(在這種情況下,應用程序是Visual Studio) – JoelFan 2010-05-17 18:27:35
VS <> ConsoleApp通信可以在任何方向。我仍然認爲使用VS擴展通過(例如)WCF監聽來自其他進程的命令將是一條路。 VS擴展可以完全訪問Visual Studio 2010 SDK,並且使用託管代碼而不是VBScript編寫。此外,您還可以將其他功能構建到擴展中,例如安全性和活動日誌記錄。 – 2010-05-17 19:52:24