2012-12-28 1 views
2

저는 현재 한 회사에서 큰 프로젝트를 진행하고 있습니다. 우리는 TFS 2012를 사용하여 몇 가지 가지 (Dev => Main => pre-prod => prod)를 가지고 있습니다.TFS 2012에서 체크인으로 영향을받는 DLL을 확인하는 방법은 무엇입니까?

프로젝트가 진행 중일 때 버그가 발생하면 패치를 적용합니다. 이는 버그의 수정으로 인해 영향을받는 DDL 만 제공한다는 것을 의미합니다.

버그 수정을 담당하는 개발자가 코드를 체크 인하 고 체크섬에 영향을받는 파일이 무엇인지 알 수 있도록 변경 세트 번호를 알려줌으로써 전달해야하는 DLL을 추론합니다.

내 문제는 여기 어떻게 changeset 번호 덕분에 이러한 DLL 이름을 알 수 있습니까? 현재 모든 .csproj를 파싱 중이며 변경 로그에있는 파일이 csproj에 있는지 확인하고 있습니다. 그렇다면 AssemblyName (DLL의 이름을 제공)을 찾고 있습니다.

하지만 String으로 파싱하고 있기 때문에 나에게 좋지 않습니다. 의존성이없고 진화하지 않습니다.

당신이 (또는 이미 :) 작성도 뭔가를) 그것하시기 바랍니다 가서 더 좋은 방법이 있다면)

감사합니다!

+1

http://msdn.microsoft.com/en-us/library/ff576128.aspx –

답변

0

실제로 Diff뿐만 아니라 모든 DLL을 배포해야합니다. 응용 프로그램에 많은 개별 구성 요소가있는 경우 하나의 구성 요소 만 배포하는 것이 좋지만 작동하려면 구체적인 인터페이스가 있어야합니다.

빌드 서버를 사용하여 모든 DLL을 동시에 생성하는 것이 가장 좋은 방법입니다. TFS에서 Cruse Control 및 Hudson에 이르기까지 다양한 옵션이 있지만 모두 해당 소프트웨어의 특정 '빌드'를 만듭니다. 이 패키지에는 패키지 된 새 버전의 소프트웨어를 배포하는 데 필요한 모든 파일이 포함되어 있습니다 (원하는대로). 각 단계를 통해 DLL을 다시 컴파일하거나 변경하지 않고도 빌드를 푸시 할 때 모든 것이 함께 작동한다는 보장을 제공합니다. 게이트 (개발, 테스트, QA, PreProd) 및 생산.

버그가 하나의 DLL 만 히스 토이라하더라도 버그를 수정하면 해당 패키지에서 함께 작동하는 것으로 알려진 모든 DLL을 배포해야합니다.

이것은 분기 또는 변경 집합으로 해결할 수있는 것이 아닙니다. 당신은 빌드가 필요합니다 ...

+0

답장을 보내 주셔서 감사합니다. MrHinsh, 저는 프로세스에 대해 생각해 보겠습니다. – Drizzy

0

내 응용 프로그램에 많은 구성 요소가 있습니다.

일부 DLL은 여러 구성 요소에 있습니다. 사실, 그들은 절대적으로 독립적 인 것이 아닙니다.

또한 앱에는 런처 + AppFabric이라는 두 개의 주 벽돌이 있습니다. 많은 작은 벽돌로 이루어져 있습니다. Launcher는 클라이언트 측 응용 프로그램이고 AppFabric은 서버 측 응용 프로그램입니다. 내 목표는 마지막 빌드 이후 변경된 벽돌 만 배포하는 것입니다.

내 질문은 : 귀하의 충고는이 앱을 배포하는 위치와 상관없이 어디서 DLL을 사용합니까? 처음부터 돌아가서 모든 .csproj 등을 파싱하는 것이기 때문에 무엇입니까?

FYI : 저는 175Mo (개발자 10 명 + 기능 5 명)의 배포 응용 프로그램입니다. 현재 6 년 동안 개발중인 정말 큰 프로젝트입니다.

관련 문제