Добавьте следующий макрос в VS EnvironmentEvent
Модуль (Инструменты-> Макросы-> Макросы IDE ...) или ALT + F11.Макрос запускается после успешного завершения сборки.
Это будет направлять текстовый вывод из окна вывода, точнее, представление Build
окна вывода, в build_output.log
.Другие Руководства IDE можно найти в MSDN .
В качестве справки, решение было основано на HOWTO: Получить OutputWindowPane для вывода некоторой строки из надстройки Visual Studio илиmacro
Visual Studio предоставляет окно вывода («Вид», «Другие окна», меню «Вывод») для отображения сообщений, отладочной информации и т. д. Это окно предоставляет несколько панелей, которые могутбыть выбранным с помощью комбинированного списка, такого как «Контроль исходного кода», «Сборка», «Отладка» и т. д.
Модель автоматизации (EnvDTE) предоставляет классы 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 ...