MSBuild 로그의 기본 위치는 무엇입니까?


101

Visual Studio Express 2012를 사용하고 있습니다. 로그 파일의 위치는 어디입니까? 내 솔루션과 프로젝트가 저장된 폴더를 검색했지만 .log 파일을 찾을 수 없습니다.

다음은 로깅을위한 구성입니다.

여기에 이미지 설명 입력


1
기본 .log 파일이 없습니다. 출력 창을보십시오.
Hans Passant

13
@Hans, 제 경우에는 출력 창에 "빌드 로그에서 더 많은 정보를 사용할 수 있습니다."라는 메시지가 표시됩니다. 어딘가에 별도의 로그가 있습니다. 아직 찾지 못했습니다.
Brandon Kuczenski 2015 년

답변:


106

Visual Studio의 로그 파일은 C ++ 프로젝트에서만 지원됩니다. 다른 사람들을 위해 출력 창 으로 작업 하면됩니다.

이 유사한 스레드를 참조하십시오 : VS2010 : 출력의 최소 빌드 로그 및 로그 파일의 자세한 로그

C ++ 프로젝트에서이 작업을 수행하는 경우 파일은 다음 위치에 있습니다 .

... 중간 파일 디렉터리의 빌드 로그 ... 빌드 로그의 경로와 이름은 MSBuild 매크로 식 $(IntDir)\$(MSBuildProjectName).log.


14
파일에 자세한 로깅을하지 않는 것은 Visual Studio의 어리석은 일이라고 생각합니다. 오, 내가 받아 들여야 할 현실. 당신의 대답, @Dmitry 주셔서 감사합니다
Hanxue

8
@hanxue-로그가 있습니다. 해당 로그는 파일로 전송되지 않습니다. 로그 파일이 필요한 경우 명령 줄에서 msbuild를 실행합니다.
Ritch Melton 2012-07-19

43
왜 IT는 :-( 그렇게 말씀하지 않습니다
Simon_Weaver

2
하느님. 젠장. 이것이 솔루션의 속성이 아닌 이유는 무엇입니까? 어쨌든 출력 창이 그렇게 끔찍한 성능이어서 항상 최소한의 출력으로 유지해야하는 이유는 무엇이며 한 출력 레벨에서 다른 출력 레벨로 변경하는 것이 8 단계 인 이유는 무엇입니까? 이들 중 하나를 수정하십시오.
James

@James 매크로를 작성하여 툴바 버튼에 할당 할 수있을 것 같습니다. 이러한 링크는 시작 지점이 될 수 있습니다. stackoverflow.com/questions/12062515/…vlasovstudio.com/visual-commander
Dmitry Pavlov

23

msdn 문서는 이것에 대해 매우 명확합니다 (그리고 당신은 그것을 좋아하지 않을 것입니다!) :

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

그것이 말하는 곳 :

관리 코드 프로젝트에 대한 빌드 로그 파일을 만들려면 메뉴 모음에서 빌드, 솔루션 빌드를 선택합니다.

출력 창에서 빌드의 정보를 강조 표시 한 다음 클립 보드에 복사합니다.

메모장과 같은 텍스트 편집기를 열고 정보를 파일에 붙여 넣은 다음 저장합니다.


15
진단 출력을 사용하고 VS가 클립 보드에 복사하려고 할 때 '메모리 부족'예외를 발생시키기 전까지는 모두 훌륭하고 좋습니다. IDE의 파일에 빌드 로그를 보내는 것을 지원하지 않는 것은 근본적으로 어리석은 결정입니다. 그러나 헤이 호, 그런 삶입니다.
Steve Pettifer

1
빌드를 텍스트 파일로 파이프 하시겠습니까? msbuild mysln.sln> output.txt (sln을 컴파일하기 위해 매개 변수를 추가해야 할 수 있지만 올바른 상세 수준에서 출력 창 iirc에서이를 걸러 낼 수 있어야합니다)
Daniel M

일반적으로 명령 줄에서 빌드 할 때 빌드 시스템에서 최소한의 정보를 터미널 창에 출력하지만 자세한 로그는 파일에 출력합니다. MSBuild는 그렇게 할 수 있습니다.
C Johnson

"그리고 당신은 그것을 좋아하지 않을 것입니다!" 그것은 6 단어로 모든 것을 말해줍니다. 감사합니다
FIV

23

파일에 로깅하는 대신 빌드 출력을 사용하십시오. 복사 / 붙여 넣기 대신 출력의 아무 곳이나 클릭하고 CTRL + S를 눌러 저장합니다. Visual Studio는 위치를 묻는 메시지를 표시합니다 (Visual Studio 2017에서 테스트되었지만 이전 버전에서도 작동한다고 가정합니다).

여기에 이미지 설명 입력


이것은 좋습니다. 상황에 맞는 메뉴에도 넣어야합니다.
Sheen

2

VS가 이것을 직접 허용하지 않는 것은 사실이지만, MSBuild "내부"VS2015로 빌드하고 다음과 같이 빌드 창 출력과 로그 파일을 모두 가져올 수 있습니다. (아마도 이것은 약간의 해킹입니다.)

  1. VS Managed 솔루션에서 새 프로젝트를 추가합니다 ( 'Make'라고하겠습니다). ㅏ. 원하는 프로젝트 유형은 Visual C ++ / NMake 프로젝트입니다.
  2. 명령 줄에서 필요한 MSBuild 명령을 정의합니다 (아래 참조).
  3. 일반 관리 프로젝트 대신 NMake 프로젝트를 빌드하도록 솔루션 구성을 변경하십시오.

그러면 MSBuild를 직접 실행할 수있는 Build, Rebuild 및 Clean 명령 줄이있는 프로젝트가 생성됩니다. 예를 들면 :

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

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

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

여러 프로젝트를 빌드하기 위해 여러 MSBuild.EXE 명령 줄을 지정할 수도 있습니다. 일반적인 솔루션 전체 빌드 결과의 경우 최종 최종 어셈블리 만 대상으로 지정하고 종속성 그래프가 개별 대상을 생성하도록 할 수 있습니다.

그러면 .log 파일이 생성됩니다. 여기서 NAME은 사용한 NMake 프로젝트의 이름입니다. 위의 예에서 로그는 make.log입니다.

작동 예제는 GitHub에서 사용할 수 있습니다 : https://github.com/bitblitz/VS_MsbuildExample (VS2015로 테스트 됨)

개별 프로젝트를 직접 빌드하는 것은 여전히 ​​일반 VS 동작으로 빌드되지만 VS 내에서 전체 솔루션을 빌드하고 빌드 로그를 가져올 수 있습니다.


1
VS_MsbuildExample에 대한 링크가 끊어졌습니다.
JPaget

안녕하세요 @brad GitHub에서 귀하의 예는 어떻게 되었습니까?
Yann Duran

문제로 죄송합니다. @YannDuran
Brad
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.