2011-08-17 2 views
2

릴리스 가능한 제품을 나타내는 솔루션이 있으며 제품 별 프로젝트와 전체 조직에서 공유되는 다른 프로젝트가 모두 포함되어 있습니다. 릴리즈 된 프로젝트의 버전 번호를 스탬프하는 가장 좋은 방법은 무엇입니까? 내 현재 아이디어는 다음과 같습니다.솔루션 버전 만들기

  • 서비스 프로젝트 (Windows 서비스 인 실제 실행 파일이 들어있는 프로젝트)에 어셈블리 버전을 설정하십시오. 그러나 이것은 기본적으로 핵심 프로젝트의 논리에 대한 단지 프론트 엔드이기 때문에 약간 이상하다고 느낍니다.
  • 코어 프로젝트 어셈블리의 버전을 지정하십시오. 이것으로 조금 이상한 것은 미래 버전에서 깨질 수 있습니다. 버전 번호가 일관성이 없다는 것을 찾는 이유
  • Wix 설치 프로젝트에서 버전 번호를 설정하십시오. 좋습니다. 그러나 자동화 될 수 있습니까?

나는이 모든 장소에서 동일한 버전 번호를 적용하는 방법을 아주 좋아하거나 이렇게하는 더 좋은 방법이 있습니까?

답변

3

아이디어는 GlobalAssemblyInfo.cs 파일을 공유 만드는 것입니다 당신이 한 곳에서 버전을 변경할 수 있습니다 이런 식으로 버전이되어야한다 각 프로젝트에서 외부 링크로 포함하고 모든 프로젝트는 Complie

GlobalAssemblyInfo.cs: 

[assembly: AssemblyVersion("0.0.0.1")] 
[assembly: AssemblyFileVersion("0.0.0.1")] 
동안 데리러

업데이트 csproj 파일을 한 번 공유 포함하는 조립 정보 :

<Compile Include="$(SolutionPath)\GlobalAssemblyInfo.cs"> 
     <Link>Properties\GlobalAssemblyInfo.cs</Link> 
</Compile> 
0

이 처리의 일반적인 방법은의 AssemblyInfo.cs에서 버전과 관련된 속성을 가진 파일을 만들고 루트 솔루션 FO에 드롭하는 것입니다 알았어. 그런 다음 공유 링크를 사용하여 각 개별 프로젝트에서이를 참조합니다.

웹에 많은 예제가 있지만 도움이 될만한 예제가 있습니다 : http://blogs.msdn.com/b/jjameson/archive/2009/04/03/shared-assembly-info-in-visual-studio-projects.aspx.

나는 꽤 오래 동안 WiX를 사용하지 않았지만 패키지를 생성하기 위해 WiX 유틸리티를 통해 실행하기 전에 버전 번호를 XML에 삽입 할 수 있어야한다. 올바르게 기억한다면 WiX는 명령 행에서 전달할 수있는 변수를 지원합니다. 그렇지 않으면 원본 XML에 포함 된 일부 마법 문자열을 자동으로 대체 할 수 있습니다. 첫 번째 옵션은 더 유지 보수가 가능합니다.

관련 문제