VisualStudioのソリューションに含まれる各プロジェクトのビルド時間を表示する方法があることを私は知っています。しかし、私が探しているのは、ビルドをクリックしてから完了するまでの、ソリューション全体のビルドにかかった合計時間です。
とにかくこれを行うことはありますか?VisualStudio2008を実行しています。
VisualStudioのソリューションに含まれる各プロジェクトのビルド時間を表示する方法があることを私は知っています。しかし、私が探しているのは、ビルドをクリックしてから完了するまでの、ソリューション全体のビルドにかかった合計時間です。
とにかくこれを行うことはありますか?VisualStudio2008を実行しています。
編集:これは、ビルド時間をビルドウィンドウに直接書き込む方法です。
Visual StudioMacroIDEを開きます。
MyMacros>EnvironmentEventsに移動します。
MyMacrosの下に、System.Windows.Formsへの参照を追加します(ポップアップウィンドウを表示するための以下のコード用)。
次のコードをEnvironmentEventsモジュールに追加します。
Dim buildStart As Date
Private Function IsBuild(ByVal scope As EnvDTE.vsBuildScope, ByVal action As EnvDTE.vsBuildAction) As Boolean
Return scope = vsBuildScope.vsBuildScopeSolution AndAlso (action = vsBuildAction.vsBuildActionBuild OrElse action = vsBuildAction.vsBuildActionRebuildAll)
End Function
Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
If (IsBuild(Scope, Action)) Then
buildStart = Date.Now
End If
End Sub
Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
If (IsBuild(Scope, Action)) Then
Dim buildTime = Date.Now - buildStart
WriteToBuildWindow(String.Format("Build time: {0}", buildTime.ToString))
End If
End Sub
Private Sub WriteToBuildWindow(ByVal message As String)
Dim win As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
Dim ow As OutputWindow = CType(win.Object, OutputWindow)
For Each owPane As OutputWindowPane In ow.OutputWindowPanes
If (owPane.Name.Equals("Build")) Then
owPane.OutputString(message)
Exit For
End If
Next
End Sub
完全なソリューションをビルドまたは再構築すると、最後に、ビルド/再構築の期間がビルド出力ウィンドウに出力されます。好みに合わせてIsBuildの条件を変更できます。
[ツール]->[オプション]->[プロジェクトとソリューション]->[VC++プロジェクト設定]->[ビルドタイミング]
これは古い質問ですが、それでも役立つと思う人もいるかもしれません。
VS2015とVS2017の拡張機能を作成しました。各プロジェクトの開始時刻と終了時刻が、ビルド全体の開始を基準にして表示されます。したがって、最後のプロジェクトの終了時間は、ソリューションの合計ビルド時間です。
拡張機能について詳しくは、こちらをご覧ください。