2012-07-17 15 views
60

Estoy usando Visual Studio Express 2012. ¿Dónde está la ubicación del archivo de registro? He buscado en la carpeta donde se almacenan mi solución y proyectos, pero no puedo encontrar ningún archivo .log.¿Cuál es la ubicación predeterminada para los registros de MSBuild?

Ésta es la configuración para el registro:

enter image description here

+0

No hay un archivo .log predeterminado. Mire en la ventana de Salida. –

+3

@Hans, en mi caso, la ventana de salida tiene mensajes que dicen "hay más información disponible en el registro de compilación". entonces hay un registro separado en alguna parte. No lo he encontrado todavía –

Respuesta

75

archivo de registro de Visual Studio sólo se admite para proyectos de C++. Solo tiene que trabajar con la ventana de salida para otros.

ver este hilo similar: VS2010: minimal build log in output and detailed log in log file

Y en caso de que suceda para hacer esto para un proyecto de C++, the file is at:

... construcciones de registro en el directorio de archivos intermedia ... La ruta y el nombre del registro de compilación están representados por la macro MSBuild expresión, $(IntDir)\$(MSBuildProjectName).log.

+10

Creo que es una tontería de Visual Studio no tener un registro detallado en un archivo. Oh bueno, una realidad que tengo que aceptar. Gracias por su respuesta, @Dmitry – hanxue

+5

@hanxue - Tiene un registro. Ese registro simplemente no se envía a un archivo. Si desea un archivo de registro, ejecute msbuild desde la línea de comando. –

+13

ENTONCES ¿POR QUÉ NO LO DECIR? :-( –

10

la documentación de MSDN es bastante claro al respecto (Y no es va a gustar!):

https://msdn.microsoft.com/en-us/library/jj651643.aspx

Donde dice:

Para crear un registro de generación archivo para un proyecto de código administrado En la barra de menú, elija Build, Build Solution.

En la ventana Salida, resalte la información de la construcción y luego cópiela al Portapapeles.

Abra un editor de texto , como el Bloc de notas, pegue la información en el archivo y guárdelo.

+7

que es todo va bien hasta que esté utilizando la salida de diagnóstico y VS decide lanzar una excepción de 'falta de memoria' cuando intente copiar al portapapeles. Realmente es una decisión estúpida no apoyar el envío del registro de compilación a un archivo en el IDE. Pero ey ho, tal es la vida. –

+0

Pipe la construcción en un archivo de texto? msbuild mysln.sln> output.txt (probablemente necesite agregar parámetros a eso para obtener su sln para compilar, pero debería ser capaz de enganchar eso desde la ventana de salida vs iirc en el nivel de verbosidad correcto) –

1

Si bien es cierto que VS no permite esto directamente, todavía es posible construir con MSBuild VS2015 "dentro" y obtener tanto la salida de la ventana de construcción y el archivo de registro, de la siguiente manera: (Podría decirse que se trata de una un poco de un truco.)

  1. En su solución VS Managed, agregue un nuevo proyecto (llamémoslo 'Hacer'). a. El tipo de proyecto que desea es el proyecto Visual C++/NMake.
  2. Defina los comandos de MSBuild que necesita en la línea de comandos (consulte a continuación).
  3. Cambie la configuración de la solución para construir el proyecto NMake en lugar de los proyectos administrados normales.

Esto creará un proyecto que tiene las líneas de comando Crear, Reconstruir y Limpiar donde puede ejecutar MSBuild directamente.Por ejemplo:

Reconstruir: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Clean,Build

Cuerpo: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Build

Limpio: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Clean

también puede especificar múltiples líneas de comando MSBuild.exe con el fin de construir varios proyectos. Para el resultado habitual de la compilación de toda la solución, puede orientar solo los ensamblados finales y dejar que el gráfico de dependencia genere los objetivos individuales.

Esto producirá un archivo .log, donde NAME es el nombre del proyecto NMake que utilizó. En el ejemplo anterior, el registro sería make.log.

Un ejemplo de trabajo está disponible en GitHub: https://github.com/bitblitz/VS_MsbuildExample (Probado con VS2015)

Tenga en cuenta que la construcción de proyectos individuales directamente todavía construirá con la normal VS comportamiento, pero se puede construir la solución completa dentro de VS y obtener los registros de compilación

Cuestiones relacionadas