2009-09-03 6 views
0

빌드를 사용하여 만든 zip 파일의 이름을 지정하기 위해 해당 값을 사용하기 위해 내 프로젝트의 GlobalAssemblyInfo.cs 파일에서 정확한 특성 인 AssemblyInformationalVersion을 추출하기 위해 TFS 빌드에서 사용자 지정 작업을 만들었습니다.TFS 빌드의 작업에서 속성을 얻는 방법?

<GetAssemblyInformationalVersionTask InfoFile="$(Path to file)\GlobalAssemblyInfo.cs" /> 

내 의도는 어셈블리 정보를 전달하는 것입니다 : 여기

[Required] 
public String InfoFile { get; set; } 
public String InfoVersion { get; set; } 

나의 작업에 내 전화입니다 :

<UsingTask TaskName="GetAssemblyInformationalVersion.GetAssemblyInformationalVersionTask" 
     AssemblyFile="$(MSBuildExtensionsPath)\GetAssemblyInformationalVersion.dll" /> 

내 DLL의 .cs 파일은이 두 가지 속성이 있습니다 InfoFile 속성을 통해 파일을 열어서 내가 원하는 (C# 코드가 수행하는) 것을 찾고 InfoVersion 속성으로 설정하여 작업으로 실행하여 TFS에서 참조하도록합니다. 원칙적으로 InfoVersion 속성을 사용하여 내 zip 파일의 이름을 지정합니다. 예 :

"Package.$(some form of reference to InfoVersion).zip" 

그러나 실제로이를 수행 할 수있는 방법을 찾을 수 없었습니다.

제 질문은 : 내 작업에서 내 부동산의 가져 오기 부분을 어떻게 호출 할 수 있습니까? 이런 종류의 온라인 서적에 대해 쓰여진 것을 찾지 못했기 때문에 쉽지는 않을 것 같습니다.하지만 도움이 될 것입니다.

답변

3

사용자 지정 작업 GetAssemblyInformationVersionTask는 [출력] 특성으로 장식 된 ITaskItem 유형의 속성을 가질 필요가 있습니다.

public class GetAssemblyInformationVersionTask 
{ 
    [Output] 
    public ITaskItem Version { get; set; } 

    public override bool Execute() 
    { 
     // code to set Version 
     return true; 
    } 
} 

그런 다음과 같이 사용할 수있을 것입니다 :

<GetAssemblyInformationVersionTask InfoFile="$(Path to file)\GlobalAssemblyInfo.cs"> 
     <Output TaskParameter="Version" ItemName="AssemblyVersion" /> 
</GetAssemblyInformationVersionTask> 

AssemblyVersion은 작업의 버전 속성 값을 포함 할 항목의 변수가 될 것입니다.

본 적이 없으면 MSDN Best Practices for Reliable Builds, Part 2은 출력 매개 변수의 주제를 다루고 있습니다. 온라인에서 더 좋은 예를 찾을 수 없는지 알게 될 것입니다.

토마스 아르 달 (Thomas Ardal)은 커스텀 작업 here에서 또 다른 좋은 [출력] 샘플을 가지고 있습니다.

HTH,

Z는

+0

내 문제는 이제 답과 포인터에 완벽하게 :) 감사를 해결된다! (내가 인터넷 검색에서 빨아 먹는 것을 보여주기 위해 간다. ..) –

관련 문제