나는 해결책을 포함, 다수의 프로젝트로 구성된이 있습니다업데이트 .NET 프로젝트 참조는
Foo.Bar.Client
Foo.Common
Foo.Bar.Client
는 Foo.Common
의 구성 요소에 따라 달라집니다. 그리고 Foo.Common
에는 자체 구성 파일이 없습니다. 그 설정은 그것을 사용하는 클라이언트 응용 프로그램의 설정 파일에 저장됩니다 (이 경우 Foo.Bar.Client
).
따라서, Foo.Bar.Client
에 대한 설정 파일이
<configSections>
<section name="BletchConfiguration"
type="Foo.Common.Bletch, Version=1.1.0.0, ..."/>
....
</configSections>
나는 "개정"부분은 최신 변화 설정 (우리의 경우에 HEAD 개정 번호에 해당 있도록 우리의 버전 번호를 조정하는 임무 봤는데 포함, 우리가 Subversion을 사용함에 따라) "1.1.0.0"에서 "1.1.0.12345"로 변경됩니다.
그래서 "here"과 같이 "공유"어셈블리 버전 정보 모듈을 구현했습니다. 그리고 NAnt 빌드 스크립트를 수정하여 버전 번호를 가져 와서 공유 어셈블리 정보 파일을 업데이트했습니다.
그러나 구성 파일에 포함 된 버전 번호는 계산하지 않았습니다. 구성 파일에서 버전 번호를 자동으로 업데이트하는 (상대적으로) 고통없는 방법이 있습니까?
"공통"어셈블리를 별도의 솔루션으로 분리 할 수 있습니다.
또한 IoC를 사용하여 공통 구성 요소를 구성 할 수 있으므로 어셈블리 관련 구성 섹션이 필요하지 않습니다.
그러나 이러한 접근 방식 중 일부는 위험과 시간을 필요로합니다 ... 둘 다 가능한 힘을 피하는 것이 더 좋습니다.
하는 당신은 할 수 없을 것을 여기
실제 AssemblyVersion를 업데이트 할 수있는 스크립트입니다 어떤 문서를 가르쳐 주겠습니까? 나는 그 라인들을 따라 생각하고 (그리고 검색하고있다.) 그러나'type '의 어떤 부분이 생략 될 수 있는지를 가리키는 것을 발견하지 못했다. – David귀하의 질문에 답변하기 위해 제 답변을 업데이트했습니다. – Adam