VS EnvironmentEvent
모듈 (도구 -> 매크로 -> 매크로 IDE ...) 또는 Alt + F11에 다음 매크로를 추가하십시오. 빌드가 성공적으로 완료되었는지 여부에 관계없이 매크로가 실행됩니다.
출력 창의 텍스트 출력을 더 구체적으로 말하면 Build
출력 창을 build_output.log
으로 파이프합니다. 기타 IDE Guids can be found on MSDN. 참고로
이 솔루션은
HOWTO: Get an OutputWindowPane to output some string from a Visual Studio add-in or macro
비주얼 스튜디오는 메시지를 표시하는 출력 창 ("보기", "다른 윈도우", "출력"메뉴)를 제공 , 디버그 정보를 기반으로 한 등 그 창 등
이
자동화 모델 (EnvDTE)이을 제공한다 "소스 제어", "디버그" "빌드"와 같은 콤보를 통해 를 선택할 수 있습니다 여러 창을 제공합니다3210 the EnvDTE.OutputWindow, EnvDTE.OutputWindowPanes 및 EnvDTE.OutputWindowPane 클래스입니다.
Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
Const BUILD_OUTPUT_PANE_GUID As String = "{1BD8A850-02D1-11D1-BEE7-00A0C913D1F8}"
Dim t As OutputWindowPane
Dim txtOutput As TextDocument
Dim txtSelection As TextSelection
Dim vsWindow As Window
vsWindow = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
Dim vsOutputWindow As OutputWindow
Dim objOutputWindowPane As OutputWindowPane
Dim objBuildOutputWindowPane As OutputWindowPane
vsOutputWindow = DirectCast(vsWindow.Object, OutputWindow)
For Each objOutputWindowPane In vsOutputWindow.OutputWindowPanes
If objOutputWindowPane.Guid.ToUpper = BUILD_OUTPUT_PANE_GUID Then
objBuildOutputWindowPane = objOutputWindowPane
Exit For
End If
Next
txtOutput = objBuildOutputWindowPane.TextDocument
txtSelection = txtOutput.Selection
txtSelection.StartOfDocument(False)
txtSelection.EndOfDocument(True)
objBuildOutputWindowPane.OutputString(Date.Now)
txtSelection = txtOutput.Selection
solutionDir = IO.Path.GetDirectoryName(DTE.Solution.FullName)
My.Computer.FileSystem.WriteAllText(solutionDir & "\build_output.log", txtSelection.Text, False)
MsgBox(txtSelection.Text)
End Sub
위의
뿐만 아니라 프로젝트별로 아마 출력 빌드 정보에 쥐게 할 수 있습니다. 빌드 로그 등의 파일 이름은 현재 빌드중인 프로젝트 (아마도 이것에 대해서는 확실하지 않음)를 기반으로 구성 될 수 있으며 무엇보다 빌드 기록을 유지할 수 있습니다.
하나에 연결할 수 있습니다 VS 이벤트의 전체, 그래서 사람이 할 수있는 일의 종류는
이
이 ... VS2010 Ultimate에서 테스트되었습니다 끝없는 있습니다
msbuild.exe의 출력을 출력 창으로 리디렉션합니다. 여기서 중도는 없습니다. 명령 줄에서 빌드하거나 IDE에서 빌드하십시오. 그것은 그렇게하는 방식으로 작동해야합니다. 오류 목록 창에서 빌드 오류를 표시하는 다른 방법은 없습니다. –
@Hans, 저는 명령 줄과 IDE 사이의 중간 지점을 찾고 있지 않습니다. IDE에서 빌드하는 동안 출력 창에 출력되는 내용을 자동으로 캡처하는 방법을 찾고 있습니다. 제 질문의 첫 번째 단락에서 충분히 명확하게 생각한 것 같습니다. – ProfK