Oauth 使用';誓言信物';在Azure Devops中,Yaml文件不工作

Oauth 使用';誓言信物';在Azure Devops中,Yaml文件不工作,oauth,azure-devops,yaml,Oauth,Azure Devops,Yaml,我们正在使用Azure Devops,希望在更新程序集任务中使用变量“$(Rev:r)”。 但是,当使用此变量时,会出现生成错误 Yaml任务: - task: update-assembly-info@2 displayName: 'Update Assembly ...........' inputs: assemblyInfoFiles: ........... company: '...........' product: ......

我们正在使用Azure Devops,希望在更新程序集任务中使用变量“$(Rev:r)”。 但是,当使用此变量时,会出现生成错误

Yaml任务:

- task: update-assembly-info@2 displayName: 'Update Assembly ...........' inputs: assemblyInfoFiles: ........... company: '...........' product: ........... copyright: '© $(Assembly.Company) $(Date:yyyy)' fileVersionMajor: '$(Date:yyyy)' fileVersionMinor: '$(Date:MM)' fileVersionBuild: '$(Date:dd)' fileVersionRevision: '$(Rev:r)' assemblyVersionMajor: '$(Date:yyyy)' assemblyVersionMinor: '$(Date:MM)' assemblyVersionBuild: '$(Date:dd)' assemblyVersionRevision: '$(Rev:r)' -任务:更新程序集-info@2 displayName:“更新程序集……” 投入: 汇编信息文件:。。。。。。。。。。。 公司:“…………” 产品:。。。。。。。。。。。 版权所有:“)$(Assembly.Company)$(日期:yyyy)” fileVersionMajor:“$(日期:yyyy)” fileVersionMinor:“$(日期:MM)” fileVersionBuild:“$(日期:dd)” fileVersionRevision:“$(版本:r)” assemblyVersionMajor:“$(日期:yyyy)” assemblyVersionMinor:“$(日期:MM)” assemblyVersionBuild:“$(日期:dd)” assemblyVersionRevision:“$(版本:r)” 但是,我们得到以下错误:

##[error]'Allow Scripts to Access OAuth Token' must be enabled when using the $(Rev:r) variable ##[错误]“允许脚本访问OAuth令牌”在使用$(Rev:r)变量时必须启用 当我们在Azure Devops的GUI中执行完全相同的步骤而不使用yaml文件时,我们可以启用“允许脚本访问OAuth令牌”属性,并按预期工作

如何在yaml文件中启用此OAuth令牌?那么我们可以在yaml文件的更新程序集任务中使用这个“$(Rev:r)”吗



通常应该这样做

-任务:更新程序集-info@2
投入:
AssemblyInfo文件:'***AssemblyInfo.*'
环境:
SYSTEM_ACCESSTOKEN:$(SYSTEM.ACCESSTOKEN)

但是,这是任务本身的问题,它不支持正确映射System.AccessToken。上有一个问题,您似乎使用了以下任务:

您可以看到,此任务自2017年6月11日以来已停止更新,并且此任务中没有
环境变量
选项。为了克服这个问题,我们可以使用代替
$(Rev:r)
。检查以下示例:

variables:
  major: 1
  minor: $[counter(variables['major'], 1)]

steps:

- task: update-assembly-info@2
  inputs:
    assemblyInfoFiles: '**\*AssemblyInfo.*'
    company: 'com'
    product: 'pro'
    fileVersionMajor: '$(Date:yyyy)'
    fileVersionMinor: '$(Date:MM)'
    fileVersionBuild: '$(Date:dd)'
    fileVersionRevision: '$(minor)'
    assemblyVersionMajor: '$(Date:yyyy)'
    assemblyVersionMinor: '$(Date:MM)'
    assemblyVersionBuild: '$(Date:dd)'
    assemblyVersionRevision: '$(minor)'

用变通方法解决了我自己的问题

我在构建名称中使用$(rev:.r),并使用powershell任务将版本号提取到变量中

完成此解决方案的yaml代码:

name: $(date:yyyyMMdd)$(rev:.r) #buildnumber format - task: InlinePowershell@1 displayName: 'Powershell to get the "RevisionNumber"' inputs: Script: | $BuildNumberParts = $($env:BUILD_BUILDNUMBER) -split '\.'; $RevisionNumber = [int]$BuildNumberParts[$BuildNumberParts.Length-1] ; Write-Host "##vso[task.setvariable variable=RevisionNumber]$RevisionNumber"; - task: update-assembly-info@2 displayName: 'Update Assembly ...........' inputs: assemblyInfoFiles: ........... company: '...........' product: ........... copyright: '© $(Assembly.Company) $(Date:yyyy)' fileVersionMajor: '$(Date:yyyy)' fileVersionMinor: '$(Date:MM)' fileVersionBuild: '$(Date:dd)' fileVersionRevision: '$(RevisionNumber)' assemblyVersionMajor: '$(Date:yyyy)' assemblyVersionMinor: '$(Date:MM)' assemblyVersionBuild: '$(Date:dd)' assemblyVersionRevision: '$(RevisionNumber)' 名称:$(日期:yyyyMMdd)$(版本:.r)#建筑编号格式 -任务:InlinePowershell@1 displayName:“获取“修订号”的Powershell” 投入: 脚本:| $BuildNumberParts=$($env:BUILD\u BUILDNUMBER)-拆分'\'; $RevisionNumber=[int]$BuildNumberParts[$BuildNumberParts.Length-1]; 写入主机“##vso[task.setvariable variable=RevisionNumber]$RevisionNumber”; -任务:更新程序集-info@2 displayName:“更新程序集……” 投入: 汇编信息文件:。。。。。。。。。。。 公司:“…………” 产品:。。。。。。。。。。。 版权所有:“)$(Assembly.Company)$(日期:yyyy)” fileVersionMajor:“$(日期:yyyy)” fileVersionMinor:“$(日期:MM)” fileVersionBuild:“$(日期:dd)” fileVersionRevision:“$(修订号)” assemblyVersionMajor:“$(日期:yyyy)” assemblyVersionMinor:“$(日期:MM)” assemblyVersionBuild:“$(日期:dd)” assemblyVersionRevision:“$(修订号)”
尝试了两种方法,但在使用$(Rev:r)变量“errorStrange”时,仍必须启用“##[error]“允许脚本访问OAuth令牌”。这是从这里开始的,所以也许这是专门针对这个任务的一个问题——> @斯蒂芬范登霍根,你能考虑把我的回答标记为回答和投票吗?我认为我们在这里做不了太多,最好把这个问题标记为解决了,因为我们无能为力。很高兴看到你的问题得到解决,你可以,这对其他社区成员阅读这篇文章是有益的。