2009-12-08 8 views
2

대규모 개발자 팀에서 사람들이 어떻게 작동하는지 알고 싶습니다..Net의 다른 프로젝트에서 같은 어셈블리로 작업 할 수 있습니까?

저는 독자적으로 작업하고 새로운 컨트롤을 만들 때마다 관련된 모든 파일을 함께 유지하는 새 프로젝트를 만듭니다.

필자는 가져 오는 여러 가지 일반적인 도우미 어셈블리를 가지고 있지만 대개의 경우 고유 한 컨트롤이 별개의 프로젝트에 보관됩니다.

개발자가 말하자면 System.Windows.Forms에서 작업 할 때 모두 동일한 프로젝트에서 작동하는지, 어떤 시점에서 모두 병합 된 별도의 프로젝트에서 작동하는지 궁금합니다.

그들은 나중에 병합하는 경우 -

(1) 어떻게이 작업이 완료 ?

(2) 클래스를 공용으로 표시하는 방법이 있나요? 병합 된 후에는 친구로 전환하도록 알려주십시오.

또한 특정 제품을 출하 할 때 최종 제품의 클래스를 추출, 병합 및 내부화하는 데 많은 시간이 소요됩니까?

나는 약호를 사용합니다.

답변

5

키는 소스 제어입니다.

솔루션의 각 프로젝트는 소스 제어에서 독립적입니다. 솔루션을 설정할 때 소스 제어 시스템의 연결 기능을 사용하여 특정 프로젝트를 사용하는 모든 솔루션이 동일한 위치로 다시 커밋되도록하십시오. 서로 다른 솔루션간에 공유되는 프로젝트를 변경해야하는 경우 해당 변경 사항은 저장소로 다시 커밋되고 작업을 계속하기 전에 다른 솔루션에서 업데이트됩니다.

프로젝트를 병합하는 상황에 처한 상황을 결코 원하지 않습니다. Visual Studio 솔루션에는 많은 프로젝트가 포함될 수 있습니다. 즉, 프로젝트마다 단 하나의 컨트롤을 사용하는 대신 비슷한 항목이 같은 프로젝트에 있도록 개별 컨트롤을 그룹화하는 것이 좋습니다. 관련 파일을 유지하는 것에 대해 걱정이된다면 프로젝트 내부에서 폴더를 사용할 수 있습니다.

+1

Your 두 번째 단락은 큰 충고입니다! 이제 내가 읽었을 때 분명해 보인다. 나는 지금 내 프로젝트 중 일부를 재구성하고있다. 앞으로는 좀 더 나은 조직에서 일이 원활하게 진행될 것으로 기대합니다. 감사! – Stewbob

1

확실히, 또한 동일한 어셈블리를 사용하거나 동일한 "솔루션 공간"내에서 어셈블리의 다른 하위 집합을 사용하는 여러 가지 솔루션을 종종 갖게됩니다.

예를 들어, 프로젝트로 참조 된 어셈블리 프로젝트를 참조한 솔루션 하나 (예 : 디버그 할 수 있음)와 디버깅에 관심이없는 참조 DLL로 사용하는 다른 솔루션 .

3

저는 여기에있는 문제는 "각 컨트롤에 대한 새 프로젝트 만들기"라고 생각합니다. 저에게 나쁜 생각처럼 들립니다. 나중에 합병하는 것은 고통입니다.

VS는 프로젝트의 파일을 나열해야하므로 상황이 악화됩니다. 즉, 소스 컨트롤에 빈번한 병합 지점이 있다는 것을 의미하지만, 수 백개의 작은 프로젝트는 나에게 확장 성이 없습니다.

같은 프로젝트에서 다른 사람들과 작업하는 것도 단점을 가질 수 있지만 전체적으로 코드가 논리적으로 의미가있는 부분을 찾아 프로젝트 구조를 만들어야한다고 말하고 싶습니다. 코드를 기반으로하지 마십시오. 구조와 누가 일을하는지.

+0

.csproj 파일에서 반복되는 병합 충돌을 싫어합니다. –

+0

@Martinho : 절대적으로 - 다른 사람의 코드를 비슷한 이름으로 바꾸면 다른 사람의 코드를 실수로 "바꾸는"것이 매우 쉽습니다. (나는 이클립스 접근법을 좋아한다. 소스 디렉토리의 모든 코드가 프로젝트의 일부라고 가정한다.) –

0

일반적으로 소스 컨트롤이 들어있는 부분이 있지만, 실제로 별도로 작업하고 소스 컨트롤 외부의 별도 프로젝트에서 개발하려는 경우에는 항상 ILMerge 관련 어셈블리를 사용할 수 있습니다.

정말 사용하기 쉽고 사람들이 함께 작업하는 개별 어셈블리를 명령 줄에서 하나의 명령으로 단일 어셈블리로 병합 할 수 있습니다.

관련 문제