2010-06-22 4 views
0

Visual Studio 2008은 고유 한 솔루션 파일 형식을 사용하며 NAnt (및 일부 복잡한 MSBuild 경우)와 같은 다양한 빌드 시스템이 자체 솔루션 파일 형식을 사용합니다. 어떻게 그들을 동기화 유지합니까? 그렇게하는 것에 대한 모범 사례가 있습니까? 모든 자동화 된 스크립트, 플러그인 ...?솔루션 파일 및 MS 외의 빌드 시스템

VS에서 프로젝트를 빌드하지 않고 외부 빌드 시스템 만 사용할 수 있습니까?

답변

0

기다림, 당신 잘못하고있다;) VS VS 솔루션 설정 (XML)을 결정하기 위해 SLN 파일 형식을 사용합니다. nAnt는 빌드 시스템이 빌드 작업을 결정하기 위해 BUILD 파일 형식 (XML)을 사용합니다. 해결책이 아닙니다. . MSbuild는 PROJ 파일 (xml)을 사용하여 빌드 프로세스 및 작업을 결정합니다. "동기화 된"이란 무엇을 의미합니까? 내 경우에는 프로젝트에 몇 가지 큰 변화가 있다면 (단지 nAnt, msbuild 등을 사용하는) 빌드 파일을 편집하고 적절한 변경을 추가합니다.

+0

글쎄, 나는 MS 개발 세계에 아직 익숙하지 않다. (보통 리눅스에서 코드를 작성한다. 보통 make는 솔루션, 프로젝트, 단일 컴파일 유닛, 배치 등을 표현하기에 충분하다.) 여전히 그것을 이해하려고 노력합니다. 따라서 컴파일을 위해 VS/MSBuild를 사용하고 NAnt 스크립트를 나란히 두십시오. 그 중 하나에 변경이있을 때마다 다른 하나에 대한 변경이 수동으로 수행되어야합니까? – liori

0

빌드 스크립트와 솔루션 파일 모두에서 종속성을 유지해야하기 때문에 NAnt를 사용하여 빌드 종속성과 프로젝트를 관리하는 것은 정말 번거로운 작업입니다. 일반적으로 개발자가 프로젝트에 솔루션을 추가/제거 할 때 빌드 스크립트를 업데이트하고 예상되는 피스가 추가되지 않은 경우에 감지 할 수있는 자동화 된 스모크 테스트가 있는지 확인해야합니다.

솔루션 파일을 구문 분석하고 프로젝트 종속성을 해결하는 도구를 작성하는 것은 어렵지 않지만 이미 존재하는 것은 알지 못합니다.

MSBuild는 VS가 내부적으로 사용하는 것으로, 외부에서 실행하면 솔루션 파일을 인수로 받아 들일 수 있으며, .sln에서 동일한 MSBuild 스크립트를 생성하고 실행합니다 (.sln .cache 파일이 나타납니다).

0

Paolo's answer 올바른 방향을 가리킴 : Visual Studio는 .sln 파일을 만들고 MSBuild는 이러한 솔루션 파일을 처리 할 수 ​​있으며 NAntContrib's msbuild task은 NAnt 스크립트에서 MSBuild를 쉽게 호출 할 수 있습니다.

+0

그런데 빌드 내에서 NAnt 전용 기능을 사용할 수 없습니까? 그리고 MSBuild를 호출하기 위해 NAnt를 사용하면 아무런 문제가 없습니다. – liori

+0

명심 해주세요. MSBuild는 실제로 꽤 좋으며 확장 작업을 작성하는 것은 매우 쉽습니다 (Google에서 할 수있는 확장 팩 및 커뮤니티 작업 세트가 있음). 나는 개인적으로 NAnt가 MSBuild가 할 수없는 것을 발견하지 못했습니다. – Paolo

+0

아니요.이 사이트에 대한 많은 의견은 NAnt에는 더 많은 기능이 있다고하지만 ... 아직 연구하지는 않았습니다. 나는 사람들이 VS와 NAnt를 어떻게 사용하는지 이해하려고 노력하고있다. – liori