2017-04-01 6 views
1

VSTS에서 호스팅되는 프로젝트가 있고 빌드 정의를 실험하고 있습니다. 프로젝트가 빌드되기 전에 AssemblyVersion.cs를 업데이트하는 powershell 스크립트를 실행하려고합니다. 로컬로 스크립트를 실행할 때 제대로 작동하지만 빌드 프로세스 중에 실행될 때 스크립트는 오류없이 실행되지만 AssemblyVersion.cs는 업데이트되지 않습니다. VSTS의 Powershell 스크립트 빌드 정의가 업데이트되지 않습니다. AssemblyVersion.cs

$regex = '\[assembly: AssemblyVersion\("(.*)"\)\]' 
$assemblyInfoPath = "..\Properties\AssemblyInfo.cs" 

(Get-Content $assemblyInfoPath) | ForEach-Object { 
    if($_ -match $regex) 
    { 
     # Get current version, and update revision number 
     $version = [version]$matches[1] 
     $newVersion = "{0}.{1}.{2}.{3}" -f $version.Major, $version.Minor, $version.Build, ($version.Revision + 1) 
     '[assembly: AssemblyVersion("{0}")]' -f $newVersion 

     Write-Host "Version updated to: $newVersion" 
    } 
    else 
    { 
     $_ 
    } 
} | Set-Content $assemblyInfoPath 

버전이 업데이트되었습니다 빌드 출력 상태

,하지만 난 파일 뷰어에서의 AssemblyInfo.cs를 볼 때 그것은 이전 버전을 보여줍니다.

+0

어떤 파일 뷰어에 대해 이야기하고 있습니까? 소스 제어에서 하나? 인공물을위한 것? 또는 빌드 머신의 Windows 탐색기? – baywet

+0

@baywet 소스 제어 파일 뷰어 – DeepDuck

+0

지금 문제를 해결합니까? –

답변

0

빌드 프로세스는 프로세스가 끝나면 자동으로 소스 코드의 변경 사항을 체크인/커밋하지 않습니다. 이를 수행하기위한 스크립트를 작성해야합니다.

0

원격 저장소에 체크인하거나 변경 사항을 푸시해야합니다.

TFVC를 사용하는 경우 변경 사항을 확인할 수있는 TFVC- 체크인 변경 단계/작업이 포함 된 TFVC Build Tasks extension이 있습니다.

당신이 힘내를 사용하는 경우에는 변경 추진하려면 다음 단계/작업을 추가 할 수 있습니다

  1. 명령 줄 (도구 : git, 인수 : add **\*.*; 작업 폴더 : $(build.sourcesdirectory))
  2. 명령 줄 (도구 : git를 ; 인수 : commit -m "update"; 작업 폴더 : $(build.sourcesdirectory))
  3. 명령 줄 (도구 : 자식, 인수 : push origin HEAD:$(Build.SourceBranchName), 작업 폴더 : $(build.sourcesdirectory))

한편 사용자 정의 빌드/릴리스 태스크를 빌드하여 빌드/릴리스에서 사용할 수도 있습니다. 사용자 지정 빌드/릴리스 작업에 대한 자세한 내용은 다음을 참조하십시오. Add a build task

참고 : 빌드 또는 릴리스시 원격 저장소의 변경 사항을 체크인/푸시하는 것은 좋지 않습니다.