代码之家  ›  专栏  ›  技术社区  ›  Jason Jarrett

VisualStudio每天生成

  •  7
  • Jason Jarrett  · 技术社区  · 17 年前

    有没有办法在VisualStudio中记录开发日内完成的构建数量,或者我们可以连接到任何地方来获取元数据?

    我很好奇我平均每天构建多少次*每次构建需要多长时间。。。

    有什么想法吗?

    更新:很抱歉没有提供详细信息…这项练习纯粹是学术性的

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

    7 回复  |  直到 17 年前
        1
  •  10
  •   jussij    17 年前

    一个选项是用您最喜欢的脚本语言创建两个脚本,并将它们添加到 项目设置的名称。

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

    但这自然只会在一个特定的时间起作用 而且不会自动跨越所有项目。

        2
  •  4
  •   Peter Alexandr Nikitin    14 年前

    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
    
        3
  •  0
  •   quinnapi    17 年前

    这可能有些过分,但您可以编写自己的日志实用程序来记录每个项目的构建元数据。通过日志类跟踪当天的构建计数。

    请看 this link 关于扩展MSBuild日志记录和 this link

        4
  •  0
  •   Mike    17 年前

        5
  •  0
  •   Damien McGivern    17 年前

    VS只允许您连接到项目级生成事件,因此如果这还不够,您可以使用生成脚本(MSBuild、NAnt等)来生成解决方案,该解决方案将使您能够完全控制生成之前和/或之后发生的事情。

    老实说,在本地机器上,你能从这些数据中得到什么好处?我们使用一个构建服务器CCNET http://ccnet.thoughtworks.com/ http://www.collab.net/downloads/subversion/ 我推荐这种收集统计数据的方法。

        6
  •  0
  •   Shawn Jackson Shawn Jackson    17 年前

        7
  •  0
  •   Jochem Kempe Jochem Kempe    17 年前

    http://www.codeproject.com/KB/macros/Increment_Build_Number.aspx

    这对我来说很有效,但请确保按照Shawn的建议在EnvironmentsEvents模块中导入System.IO命名空间。

    推荐文章