Visual Studio每天构建

Jas*_*ett 7 build-process visual-studio

有没有办法记录在开发日期间在Visual Studio中完成的构建数量,或者我们可以在什么地方挂钩以获取元数据?

我好奇平均每天建造多少次*每次建造需要多长时间......

有什么想法吗?

更新:抱歉缺乏细节......这项练习纯粹是学术性的

有一个解决方案,有14个不同的项目(1是一个网站).我一直在构建整个解决方案(Ctrl + Shift + B).不仅要了解我白天构建的次数,还要等待构建完成所花费的时间,这将会很有趣......

最佳解决方案是不需要更改解决方案项目本身的解决方案.(构建前/后事件)我不想在签到之前/之后添加/撤消更改.

(nant/other解决方案听起来像答案,我想我可以将它映射到快捷键而不必离开VS来进行构建)

还有其他建议吗?

jus*_*sij 10

一种选择是用您喜欢的脚本语言创建几个脚本,并将它们添加到项目设置的前后构建事件中.

现在,每次运行构建时,脚本都将运行,您可以让脚本跟踪您需要的任何信息.

但是,这自然只会在项目级别上运行,而不是在所有项目中自动运行.

  • 您可以使用预构建步骤计算尝试的构建数,并使用构建后步骤来计算成功构建的数量. (4认同)
  • ...并在前后调用相同的脚本以确定构建所花费的时间.;) (4认同)
  • +1.这也是我的答案.也很好,可以在解决方案中为每个项目分别调用它.可以看到VisStudio跳过多少次没有改变的项目. (4认同)

小智 4

使用宏资源管理器创建新宏。打开新宏并编辑环境事件模块(您可以将其他模块留空)。您可以使用数据库而不是文件。

Private BuildStopWatch As System.Diagnostics.Stopwatch = New System.Diagnostics.Stopwatch()

Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
    BuildStopWatch.Reset()
    BuildStopWatch.Start()
End Sub

Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
    BuildStopWatch.Stop()
    DTE.ToolWindows.OutputWindow.ActivePane.OutputString("Build succeed in " & BuildStopWatch.Elapsed.TotalSeconds & " seconds.")
    Dim fileName As String = "D:\BuildTimes.txt"
    Try
        Dim streamWriter As StreamWriter
        If File.Exists(fileName) Then
            streamWriter = File.AppendText(fileName)
        Else
            streamWriter = File.CreateText(fileName)
        End If

        streamWriter.WriteLine(DateTime.Now.ToString() & "    " & "Build Time:" & BuildStopWatch.Elapsed.TotalSeconds)
        streamWriter.Close()
        streamWriter.Dispose()
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub
Run Code Online (Sandbox Code Playgroud)