2011-05-12 5 views
3

속성의 범위는 내가 정확한 조립 번호에 $ (FullVersionNr)을 설정하고 최종MSBUILD 작업 및 I 대상 빌드에서 하나 개의 빌드 프로젝트를

에서이 NR 아니다

이 난

<Import Project="Common.proj"/> 

다른 파일에서 $ (FullVersionNr) 소품을 선언하며 g을 아니다 밖으로 외쳐.

은 부모로부터 자식 프로젝트에 한 방향으로 만 통신, 그리고 나는이 MSDN 기사 당신이 달성하는 방법에 대한 몇 가지 아이디어 제공해야

답변

1

양방향되고 싶어 : MSBuild Properties합니다. 보다 구체적으로이 블로그 게시물은 범위 질문에 답변해야합니다 : Scope of properties and item in an MSBuild script. 끝에 요약을 읽으십시오.

여러 프로젝트에서 일괄 처리하는 경우 두 번째로 $(FullVersionNr)에 액세스 할 때 로컬 컨텍스트가 전역 컨텍스트로 병합되지 않았거나 하나의 로컬 컨텍스트가 다른 컨텍스트 (예 : 자식 프로젝트, 첫 번째 업데이트 빌드 있지만 두 번째 않는).

한 가지 가능한 솔루션은 MSDN 기사에서 설명한대로 레지스트리 속성을 사용하고 해당 값이 업데이트 될 때만 속성을 작성하는 것입니다.

+0

두 번째 링크 및 결론 - "대상 실행이 끝나면 로컬 컨텍스트의 업데이트 된 값이 전역 컨텍스트로 다시 병합됩니다." - 필자의 경우 ** 글로벌 컨텍스트로 병합되지 않았다. –

+0

@Krzy,'@ (WebProj) '리스트에 하나 이상의 프로젝트가 있는가? 그렇다면'$ (FullVersionNr)'을 각각 고유하고 예측 가능한 것으로 설정하고, 빌드를 다시 실행하고, 끝 부분의 값을 확인하십시오. 여전히 원래 값과 같으면 컨텍스트가 병합되지 않습니다. 다른 경우 프로젝트를 변경 한 프로젝트를 추적 할 수 있습니다. – slugster

+0

하나의 웹 프로젝트이고 나머지 프로젝트는 의존 프로젝트로 구축됩니다. 모두 동일한 버전 번호를 설정하고 결국이 값은 첫 번째 프로젝트에 반환되지 않습니다.

관련 문제