2014-03-07 2 views
1

AssemblyVersionAssemblyFileVersion 속성은 별도의 속성 파일에 있습니다. 이것은 모든 프로젝트간에 "링크"되어 있고 빌드 서버에 의해 업데이트되기 때문입니다. 모든 빌드 또는 릴리스 후에 버전을 수동으로 업데이트하지 않아도됩니다.AssemblyVersion 및 AssemblyFileVersion을 별도의 파일로

AssemblyInfo.cs :

[assembly: AssemblyTitle("MyProductTitle")] 
[assembly: AssemblyCulture("")] 
[assembly: Guid("579eb194-08f1-44fc-9422-21aaf6cb2963")] 

AssemblyVersionInfo.cs :

[assembly: AssemblyFileVersion("0.0.14056.19")] 
[assembly: AssemblyVersion("0.0.0.0")] 

문제는 우리의 빌드 서버가 각 프로젝트에 대해 다음과 같은 경고와 불평이다 :

CA1016 : Microsoft.Design : Add an AssemblyVersion attribute to 'MyProduct.dll'. 

로컬 프로젝트를 구축 bin에있는 실제 DLL 파일에는 숫자에 (파일 속성 대화 상자) 적용 :

File properties

Visual Studio에서 프로젝트 속성을 볼 때, 버전 정보는 조립 정보 검출되지 않은 :

VS Project properties

내 생각은 이는 AssemblyInfo.cs에없는 AssemblyVersionAssemblyFileVersion으로 인한 것입니다.

AssemblyVersionInfo.cs 파일을 "포함"할 수있는 방법이 있습니까?

+0

[AssemblyInfo.cs는 대화 상자에서 구문 분석됩니다.] (http://msdn.microsoft.com/en-us/library/1h52t681.aspx) 해당 대화 상자에서 해당 정보를 얻을 수있는 방법이 없습니다. 빌드 서버 스크립트와 로컬 빌드의 차이점은 무엇입니까? tfsbuild.rsp에/v : diag를 추가하여 링크 된 파일이 실제로 작업 공간에로드되어 컴파일되는지 아이디어를 얻을 수 있습니까? http://blogs.msdn.com/b/aaronhallberg/archive/2007/05/03/tfsbuild-rsp-and-logging-verbosity-in-orcas.aspx – rene

답변

7

이상 한 가지 잘못 여기가는 : 엄격히 속성의 AssemblyInfo.cs 파일에 보이기 때문에

  • 대화는 꽤 비어 있습니다. 버전 번호를 입력하면 해당 파일에 기록됩니다. 별도의 파일을 사용하는 것은 이 아니라 좋은 아이디어입니다.

  • Windows "세부 정보"속성 시트는 .NET에 무관하며 비 관리 대상 버전 리소스의 내용 만 파일에 표시합니다. C# 소스 코드의 특성과 간접적으로 만 관련된 C# 컴파일러는 특성에서 관리되지 않는 버전 리소스를 자동 생성합니다. 안타깝게도,이 중요한 대화 상자에는 [AssemblyVersion] 번호가 표시되지 않고 XP는 마지막으로 표시 할 수있는 Windows 버전이었습니다.

  • 당신은 아마 당신이 Windows가 [AssemblyVersion]를 표시하지 0

에 버전 번호가 남아 있기 때문에 CA1016있어 하지 속성을 건너 뛸 수있는 좋은 이유입니다. 속성 시트에서 중요한 내용을 보려면 [AssemblyFileVersion]을 [AssemblyVersion]과 동일하게 만드십시오. [AssemblyVersion]을 변경하면 을 변경하면 어셈블리에 대한 참조가있는 프로젝트 중 모두을 다시 컴파일해야한다는 점에 유의하십시오.

Microsoft의 Windows 및 DevDiv 그룹간에 나쁜 역사가 있습니다. 자세한 내용을보고 싶지 않습니다.Windows가 을 매우에 약간 수용한다고 가정합시다. 이 문제를 해결하는 것은 우리에게 달려 있습니다.

관련 문제