vscode visual tag studio color code closing close brackethighlighter autoclose visual-studio msbuild build-process

visual-studio - visual - vs code autoclose html



Mostrar tiempos de construcción en Visual Studio? (11)

Nuestro servidor de compilación tarda demasiado en construir uno de nuestros proyectos C ++. Utiliza Visual Studio 2008. ¿Hay alguna forma de que devenv.com registre el tiempo necesario para construir cada proyecto en la solución, de modo que sepa dónde concentrar mis esfuerzos?

El hardware mejorado no es una opción en este caso.

He intentado configurar la verbosidad de salida (en Herramientas / Opciones / Proyectos y Soluciones / Compilar y ejecutar / MSBuild project Build Out Verbosity). Esto no parece tener ningún efecto en el IDE.

Al ejecutar MSBuild desde la línea de comandos (y, para Visual Studio 2008, debe ser MSBuild v3.5), muestra el tiempo total transcurrido al final, pero no en el IDE.

Realmente quería un informe que tomara el tiempo para cada proyecto en la solución, para poder averiguar dónde estaba tomando su tiempo el proceso de construcción.

Alternativamente, dado que realmente usamos NAnt para conducir el proceso de construcción (utilizamos Jetbrains TeamCity), ¿hay alguna manera de que NAnt me diga el tiempo que se necesita para cada paso?


Visual Studio 2015, 2013 y 2012

  • Para proyectos de MSBuild (por ejemplo, todos los .Net-Projects):
    Haga clic en Tools -> Options y luego seleccione Projects and Solutions -> Build and Run . Cambie la MSBuild project build output verbosity a Normal . Por lo tanto, mostrará el tiempo transcurrido en cada proyecto de solución que genere. Pero desafortunadamente no hay suma de tiempo transcurrido sobre todo el proyecto. También verá la Marca de tiempo de Build started

  • PARA Proyecto C / C ++:

Haga clic en Tools -> Options y luego seleccione Projects and Solutions -> VC++ Project Settings .

Cambie el Build Timing a Yes .


Dado que su pregunta implica el uso de DevEnv desde la línea de comandos, también sugiero usar MSBuild (que puede crear archivos .sln sin modificaciones).

msbuild /fl /flp:Verbosity=diagnostic Your.sln

msbuild /? le mostrará otras opciones útiles para el registrador de archivos.


Haga una compilación primero y vea qué proyecto está apareciendo primero en la salida de compilación ( Ctrl + Inicio en la ventana de salida). Haga clic derecho en ese proyecto → Propiedades del proyectoCompilarDesarrollar eventosPreconstruir . Y echo ###########%date% %time%############# .

Entonces, cada vez que vea resultados de compilación (o durante la construcción), haga Ctrl + Inicio en la ventana de resultados. ¡Y en algún lugar de esa área, la fecha y la hora te miran fijamente!

Ah, y podrías terminar agregando estos detalles a muchos proyectos, ya que el orden de compilación puede cambiar :)

¡Encontré una mejor solución! ###

HerramientasOpcionesProyectos y solucionesCompilar y ejecutarMSBuild project build output verbosity = Normal (o por encima de Mínimo ). Esto agrega el tiempo en la ventana de salida inicial / superior. Ctrl + Inicio en la ventana de salida debería hacer.

Si queremos ver cuánto tiempo lleva cada proyecto, entonces Proyectos y solucionesConfiguración del proyecto de VC ++Tiempo de compilación = sí . Es aplicable a todos los proyectos; "VC ++" es engañoso.


Herramientas ... Opciones ... Proyectos y soluciones .... Nivel de detalle de la salida de compilación del proyecto MSBuild: configurado en "Normal" o "Detallado", y el tiempo de compilación aparecerá en la ventana de resultados


Herramientas-> Opciones-> Proyectos y soluciones-> Construir y ejecutar->

Establezca "Nivel de detalle de la salida de compilación del proyecto de MSBuild" de "Mínimo" a "Normal"


Para Visual Studio 2012, puede usar la extensión Build Monitor .


Si desea invocar un programa externo que puede rastrear sus tiempos totales de compilación, puede usar la siguiente solución para VS 2010 (y tal vez más). El siguiente código usa CTime por Casey Muratori. Por supuesto, también puedes usarlo para simplemente imprimir el tiempo de compilación.

Abra el macro explorer y pegue lo siguiente antes de End Module :

Dim buildStart As Date Private Sub RunCtime(ByVal StartRatherThanEnd As Boolean) Dim Arg As String Dim psi As New System.Diagnostics.ProcessStartInfo("ctime.exe") If StartRatherThanEnd Then psi.Arguments = "-begin" Else psi.Arguments = "-end" End If psi.Arguments += " c:/my/path/build.ctm" psi.RedirectStandardOutput = False psi.WindowStyle = ProcessWindowStyle.Hidden psi.UseShellExecute = False psi.CreateNoWindow = True Dim process As System.Diagnostics.Process process = System.Diagnostics.Process.Start(psi) Dim myOutput As System.IO.StreamReader = process.StandardOutput process.WaitForExit(2000) If process.HasExited Then Dim output As String = myOutput.ReadToEnd WriteToBuildWindow("CTime output: " + output) End If End Sub Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin WriteToBuildWindow("Build started!") buildStart = Date.Now RunCtime(True) End Sub Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone Dim buildTime = Date.Now - buildStart WriteToBuildWindow(String.Format("Total build time: {0} seconds", buildTime.ToString)) RunCtime(False) 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) If (Not message.EndsWith(vbCrLf)) Then message = message + vbCrLf End If ow.OutputWindowPanes.Item("Build").OutputString(message) End Sub

Respuesta tomada desde here y here .


Si desea visualizar su construcción, puede usar IncrediBuild. IncrediBuild ahora está disponible en modo independiente (no distribuido, pero solo para uso en 8 núcleos en su máquina local) de forma gratuita como parte de Visual Studio 2015 Update 1

Descargo de responsabilidad: yo trabajo para IncrediBuild


Si está atascado en VS2005, puede usar el complemento vs-build-timer . Al completar una compilación, muestra el tiempo total empleado y un resumen (opcional) de cada una de las duraciones del proyecto.

Renuncia; Yo lo escribi. Y sí, necesito crear un instalador ... ¡algún día!


Terminé aquí porque solo quería incluir la fecha y la hora en el resultado de compilación. Si otros buscan algo similar, es tan simple como agregar echo %date% %time% a los eventos Preconstruidos y Postconstruidos en el proyecto, PropiedadesCompilarCrear eventos .


Herramientas de menú → OpcionesProyectos y solucionesConfiguración de proyecto de VC ++ → El tiempo de compilación debería funcionar.