성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
[정성태] 만드실 수 있습니다. 단지, Unity 엔진 내의 스크립트와 W...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <br /> <br /> <div class='mainCenterTitle'>TFS Team Build + Symbol Server</div><br /> <br /> 이번엔 Symbol Server와 Team Build를 연결해 보겠습니다. Symbol Server는 해당 바이너리 모듈에 대한 PDB 파일 정보를 내려받을 수 있는 서버인데, 이에 대한 개략적인 구성 방법은 아래의 아티클에서 이미 살펴봤었습니다.<br /> <br /> <pre class='code'> Symbol Server 생성 ; <a target='_tab' href='/2/0/323'>http://www.sysnet.pe.kr/2/0/323</a> </pre> <br /> 사실, 위의 내용만 알면 Team Build와 연결하는 것은 그다지 어렵지 않습니다. Build Task에 symstore만 실행시켜 주면 되기 때문입니다. 그래도 기왕 알아보기로 했으니 ^^ 어떻게 할 것인지 써보도록 하겠습니다.<br /> <br /> 이를 테스트 하기 위해서는 다음과 같은 서버들이 필요합니다.<br /> <br /> <ul> <li>웹 서버</li> <li>TFS 서버</li> </ul> <br /> 개략적인 시나리오를 설명드리면, 우선 TFS 서버는 팀 빌드를 하고, 그 빌드와 연관된 PDB 파일들을 웹 서버의 특정 폴더에 보낼 것입니다. 그다음, 클라이언트 측에서 VS.NET 2008의 Symbol Server에 해당 웹 서버 주소를 포함하고 디버그를 시작하면 어셈블리 모듈에 맞는 PDB 파일을 다운로드 받아서 디버깅시에 사용하게 됩니다.<br /> <br /> 단계별로, 한번 정리해 볼까요! ^^<br /> <br /> <br /> <span class='subLastTitle'>1. 테스트를 위한 Team 프로젝트 및 Team Build 구성</span> <br /> 저같은 경우에는 다음과 같이 "BaseClassLibrary"라는 Team 프로젝트를 만들고 "FastBuild"라는 팀 빌드를 구성해 놓았습니다.<br /> <br /> [그림 1: 테스트용 팀 프로젝트]<br /> <img alt='symbol_server_plus_tfs_server_1.png' src='/SysWebRes/bbs/symbol_server_plus_tfs_server_1.png' /><br /> <br /> <span class='subLastTitle'>2. symstore 실행 - 팀 빌드 결과물을 웹 서버에 보관</span> <br /> TFS 빌드 서버에 <a target='_tab' href='http://www.microsoft.com/whdc/devtools/debugging/default.mspx'>Debugging Tools for Windows</a>를 설치하고, 해당 팀 빌드 프로젝트를 편집해서 다음과 같은 빌드 태스크를 추가합니다.<br /> <br /> <pre class='code'> <Target Name="AfterDropBuild"> <!-- PDB Symbol 배포 --> <Exec IgnoreExitCode="false" Command="<b>symstore</b> add /r /f $(OutDir)*.* /s <b>\\web2008\Symbols</b> /t $(TeamProject) /v $(BuildNumber) " /> </Target> </pre> <br /> <ul> <li> $(TeamProject) 등의 값들은 "<a target='_tab' href='/2/0/508'>Team Build 에 사용되는 각종 Property 값</a>"을 참고하십시오.</li> <li> \\web2008\Symbols는 웹 서버의 공유 폴더이고, "Virtual Application" 폴더로 연결되어 있습니다.</li> <li> symstore를 실행시키는 계정은 팀 빌드를 구동시키는 프로세스인 "TFSBuildService.exe"에 대해 작업 관리자에서 확인해 보면 됩니다.</li> <li> \\web2008\Symbols 공유 폴더에는 "TFSBuildService.exe"를 구동시키는 계정에 대해 "쓰기" 권한이 부여되어 있어야 합니다.</li> <li> web2008 웹 서버의 Symbols 가상 애플리케이션 설정에는 ".dll/.exe/.pdb"에 대한 MIME 형식을 "application/octet-stream"으로 설정해 두어야 합니다. 자세한 사항은 "<a target='_tab' href='/2/0/323'>Symbol Server 생성</a>"을 참조하십시오.</li> <li> symstore.exe에 대한 실행파일 경로는 Command 인자에 직접 지정해도 되고, 전역 환경 변수 PATH에 설정해도 됩니다.</li> </ul> <br /> 이것으로, Symbol Server 구성 끝입니다. ^^<br /> <br /> <hr style='width: 50%' /><br /> <br /> 이제 테스트를 하면 되는데요. 사실, 이에 대한 설명은 이미 다음의 아티클에서 자세히 다뤘습니다.<br /> <br /> <pre class='code'> 3.7. Microsoft의 PDB 파일 관리 ; <a target='_tab' href='/2/0/321'>http://www.sysnet.pe.kr/2/0/321</a> </pre> <br /> 그래도, 여기서 다시 한번 제가 구성한 예제 프로젝트를 가지고 테스트 해보겠습니다.<br /> <br /> <span class='subLastTitle'>1. 테스트 프로젝트 다운로드</span> <br /> <a href='/SysWebRes/bbs/WindowsFormsApplication1.zip'>"예제 프로젝트"</a>를 다운로드 받아서, 여러분들의 VS.NET 2008에서 로드합니다.<br /> <br /> <span class='subLastTitle'>2. 예제 프로젝트에서 사용하는 "BclExtension.dll"의 PDB 파일이 놓인 Symbol 서버를 지정</span> <br /> 아래와 같이 "Tools" / "Options" 메뉴에서 Symbol Server를 지정합니다.<br /> <br /> [그림 2: 테스트 DLL의 PDB 심벌 서버 지정]<br /> <img alt='symbol_server_plus_tfs_server_2.png' src='/SysWebRes/bbs/symbol_server_plus_tfs_server_2.png' /><br /> <br /> <span class='subLastTitle'>3. PDB 다운로드 확인</span> <br /> 이제, 위에서 다운로드 받은 예제 프로젝트로 "F5" 디버깅을 시작해 보면, 아래 그림과 같이 "BclExtension.dll"에 대해서 "Symbols loaded." 상태가 되는 것을 확인할 수 있습니다. 물론, "E:\cachedProducts" 폴더에는 "BclExtension.pdb"에 대한 PDB 파일도 다운로드 되어져 있습니다.<br /> <br /> [그림 3: 디버깅 시에 테스트 DLL 심벌 파일 로드]<br /> <img alt='symbol_server_plus_tfs_server_3.png' src='/SysWebRes/bbs/symbol_server_plus_tfs_server_3.png' /><br /> <br /> <br /><br /><hr /><span style='color: Maroon'>[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1342
(왼쪽의 숫자를 입력해야 합니다.)