2017-01-10 7 views
0

내가 아래에 MSBuild 인수를 사용하여 데스크톱 응용 프로그램의 ClickOnce를 파일을 생성하는 CI 빌드에서 비주얼 스튜디오 빌드 단계가 구축 :설정 ClickOnce를 ApplicationVersion 및 MinimumRequiredVersion이

/target:publish /p:ApplicationVersion=$(Year:yyyy).$(Month).$(DayOfMonth).$(Build.BuildId) /p:MinimumRequiredVersion=$(Year:yyyy).$(Month).$(DayOfMonth).$(Build.BuildId) /p:InstallUrl=$(InstallUrl) 

$를 (빌드 .BuildId) 및 $ (InstallUrl) 변수가 올바른 값으로 대체되지만 $ (Year : yyyy), $ (Month) 및 $ (DayOfMonth) 변수가 대체되지 않습니다. 일반 변수 탭에서 빌드 번호 형식을 설정하기 위해 동일한 변수를 사용하고 있으며 올바르게 대체됩니다. VSTS의 빌드 단계에서 날짜 기반 변수를 사용할 수 있습니까?

편집 : $ (Build.BuildNumber)를 사용하면 나타납니다 만 빌드 번호 형식으로 빌드 정의 이름을 포함시키고 싶습니다. 분명히 버전에서는 작동하지 않습니다.

+0

Luca의 솔루션으로이 문제를 해결합니까? –

답변

1

$(Year:yyyy), $(Month), $(DayOfMonth)은 다른 곳이 아닌 빌드 번호 형식 필드에서만 사용할 수있는 토큰입니다. 당신이 그런

$date = get-date 
write-host "##vso[task.setvariable variable=Year;]$(($date).year)" 
write-host "##vso[task.setvariable variable=Month;]$(($date).month)" 
write-host "##vso[task.setvariable variable=Day;]$(($date).day)" 

수 :

난 당신이, 즉석에서 자신에게 해당 변수를 만드는 당신의 비주얼 스튜디오 빌드 작업 전에 (인라인 스크립트 포함) PowerShell을 작업에 의해 실행 다음 스크립트를 활용 제안 현재 추가 MSBuild 인수로 사용하는 토큰 대신 $(Year), $(Month)$(Day)을 사용하십시오.

+0

완벽하게 작동했습니다. 나는이 작은 것을 위해 powershell 스크립트를 추가해야하는 팬이 아니지만 작동 할 것이다. 나는 빌드 번호 형식을 변경하고이를 처리 할 수 ​​있다고 생각합니다. –