2015-01-30 2 views
1

모두중첩 된 종속성이있는 MSBuild 프로젝트

내부적으로 종속 프로젝트를 빌드 한 몇 가지 최상위 프로젝트 (콘솔 응용 프로그램, 웹 사이트 등)가 있습니다. 이러한 하위 프로젝트 중 일부는 하위 프로젝트의 bin 폴더에서 DLL을 포함하여 최상위 프로젝트에서 참조되며 일부는 솔루션에 프로젝트를 포함하여 참조됩니다. 어떤 방법으로 "옳은"방법인지 모르지만 TFS Continuous 빌드를 사용하여 빌드 할 최상위 프로젝트를 얻을 수 없다는 것을 알고 있습니다. 로컬로 빌드되지만 TFS 연속 빌드에는 빌드되지 않습니다. 일반적으로 일련의 "참조를 찾을 수 없음"오류로 실패합니다.

그러나 각 하위 프로젝트 (모델, 리포지토리 등)를 가져 와서 중앙 위치로 빌드 한 다음 최상위 프로젝트의 중심 위치를 참조해야합니다. 내가 좋아하지 않는 유일한 점은 DEV 브랜치 프로젝트에서 포스트 빌드 이벤트 스크립트를 사용하지 않는 한 DEV 브랜치를 중앙 위치로 복사하도록하는 방법이 없다는 것입니다.

누군가이 프로세스로 일부 Zen을 찾는 데 도움이 될 수 있으면 감사하겠습니다. 저는 소프트웨어 엔지니어이고 빌드 엔지니어가 아닙니다 ...

+0

"올바른 방법"이 무엇인지 모르는 이유를 모르며 Visual Studio의 프로젝트 종속성에 대해 읽은 적이 없다고 가정 할 수 있습니다. 프로젝트 참조 만 사용하고 빈 폴더에있는 DLL에 대한 참조를 절대로 추가해서는 안됩니다 ... 이제까지! –

+0

MrHinsh - 당신은 많이 생각합니다. 나는이 TFS 구성을 물려 받았다. 내가 나 자신을 세워 놓았다면 나는 다르게 행동했을 것이다. 톤에도 불구하고 조언 주셔서 감사합니다. – jaxmeier

+0

음색은 TFS 문제가 아니며 Visual Studio의 근본적인 특성이 아니라 13 년 이상 반영되었습니다. –

답변

2

종속성을 사용하는 응용 프로그램과 별도로 종속성을 버전을 지정하려면 NuGet을 사용하여 종속성을 관리하십시오. 빌드 프로세스의 일부로 패키지가 복원됩니다.

바이너리는 기본적으로 소스 제어에 없어야합니다.

+0

Daniel, 각 종속 라이브러리는 컬렉션 내에서 버전 제어됩니다. 왜 Nuget이 필요한지 잘 모르겠지만 나는 그것을 조사 할 것이다. 바이너리의 경우, 나는 실제로 소스 컨트롤에 bin 폴더를 포함한다고 생각하지 않는다. – jaxmeier

+0

Jaxmeir - 소스 제어에 모든 바이너리를 체크인하지 않아야합니다. 당신이 만드는 것이거나 다른 사람들이 제공하는 것이 아닙니다. –

관련 문제