2010-11-24 2 views
1

솔루션의 일부를 빌드하기 위해 대규모 MSBuild 프로젝트를 개발했습니다. XML 파싱/대체, Windows 서비스, 원격 복사 등 많은 일들이 일어나고 있습니다. 결과적으로 코멘트에 장식을 추가하려는 노력에도 불구하고 파일 관리가 어려워졌습니다.MSBuild 가져 오기를 사용하여 프로젝트 모듈화

바보 같이, 나는 "XML.targets", "Services.targets"등과 같은 별도의 파일로 기능의 주요 덩어리를 떼어내어 기본 "Build.proj"로 가져 왔습니다. 빌드가 여전히 효과가 있었고 즉시 더 많은 관리가 가능하다는 것을 알았습니다.

그러나 MSBuild의 가져 오기 기능에서 읽은 모든 정보는 다시 사용할 수있는 대상, 즉 수정없이 MSBuild 프로젝트에서 사용할 수있는 것보다 많이 사용해야한다는 것입니다. 여기에서 만드는 개별 프로젝트는 반대입니다. 한 프로젝트에만 해당되며 수정되지 않은 경우 다른 프로젝트와 함께 사용하는 경우 기본적으로 중단됩니다.

그래서 내가 묻는 것은 ... 내가? 대규모 프로젝트를 조직 할 목적으로 Import를 엄격하게 사용하는 데에는 고유 한 위험이 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

감사합니다.

답변

1

아니요, 본질적인 위험은 없습니다. 대규모 프로젝트를 여러 가지 .targets 파일로 분할하는 것은 좋은 결정입니다. 전체적인 복잡성을 줄이기 때문에 특정 작업에 특정한 것입니다. 재사용 가능한 대상을 만드는 아이디어는 가능하면 다른 부분에 거의 의존하지 않아야 함을 의미합니다. 비유하자면 별도의 .targets 파일을 클래스로 생각할 수 있습니다. 그들은 덜 결합되어 있습니다 - 더 좋습니다. 하나의 대상 파일을 수정하면 전체 프로세스가 중단 될 가능성이 적기 때문에 당신은 종이의 평화 로움을 취할 수 있으며, 중심에있는 주 프로젝트와 함께 대상 파일을 포인트로 그려서 그 사이의 모든 연결을 그립니다. 하나의 대상 파일이 다른 대상의 대상을 재정의하거나 그 중 일부 속성이 그 대상에 의존하거나 다른 방식으로 그 대상에 의존하는 경우 연결이 있다고 가정 해보십시오. 완벽한 시나리오에서는 별과 같은 것을 얻을 수 있습니다.
짧게 : 이면 은 복잡함이 줄어 듭니다..

관련 문제