2014-07-04 7 views
0

최근에 TFS 2012에서 TFS 2013으로 업그레이드했으며 새 템플릿 (TfvcTemplate.12.xaml)을 사용하려고합니다. 이 프로세스의 일부로 .NET 응용 프로그램 및 WiX 설치 프로그램의 버전 번호를 설정해야합니다.TFS 2013 - 빌드 전 PowerShell 스크립트에서 MSBuild 매개 변수 업데이트

  1. 이 버전 번호를 생성 : 내 TFS 2012 과정에서 나는 다음을 수행 TFS 커뮤니티가 확장 빌드를 사용하여 빌드 템플릿을 사용자 정의. 주 버전과 부 버전 번호는 정적이며 릴리스 번호는 2014-11-25 년 이후의 일 수이며 빌드 번호는 빌드 정의가 오늘 실행 된 횟수입니다.

  2. 업데이트 새 버전 번호

  3. 업데이트 MsBuildArguments 인수와 함께 모두의 AssemblyInfo.cs 파일을 매개 변수로 버전을 전달합니다. 이것은 WiX 설치 프로그램에서 버전 번호를 설정할 수 있도록하기 위해서입니다.

빌드 템플릿을 다시 사용자 지정하기 전에 위의 Pre-build PowerShell 스크립트를 사용하여 위와 같은 작업을 수행하려고합니다.

항목 1과 2는 PowerShell에서 쉽게 사용할 수 있지만 세 번째 요구 사항이 있습니다. Pre-build PowerShell 스크립트가 MSBuildArguments를 업데이트 할 수 있습니까?

답변

1

이렇게하는 것이 더 간단한 방법이라고 생각합니다. 이것이 우리가 한 일입니다.

Version.wsi라는 포함 파일이 작성되었습니다. 바로 선 후 우리 WXS 파일에서

<?xml version="1.0" encoding="utf-8"?> 
<Include> 
    <?define CurrVersion="1.0.0.0" ?> 
</Include> 

,

<Wix xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns="http://schemas.microsoft.com/wix/2006/wi" > 

다음과 같은 추가 : 당신의 WXS 파일에서

<?include Version.wxi ?> 

변수 $를 사용합니다 파일은이 4 개 개의 라인을 포함 (var.CurrVersion) 현재 버전을 지정합니다.

이제 powershell 스크립트에 포함해야하는 것은 올바른 버전 번호로 wxi 파일을 수정하는 코드입니다. 이것이 내가하는 방법입니다.

function UpdateVersion($newVersion) 
{ 
    $wxiFile = gci "$Somedir\Version.wxi" 
    #clear the read-only bit just in case 
    Set-ItemProperty $wxiFile -name IsReadOnly -value $false -Force 

    $newContent = $content -replace "1.0.0", $prodVersion 
    Set-Content -Path $wxiFile -Value $newContent 
} 
관련 문제