首页 > 解决方案 > 在 Blazor Server 应用程序中访问 DevOps 管道脚本变量?在 UI 版本号上显示?

问题描述

AzureDevOps 的新手,Blazor 服务器的新手。

如果我的 Azure DevOps 管道构建中有这样的 yaml 任务,并且想要在 Blazor Server 应用程序的 UI 上显示构建名称,我将如何访问此信息?我可以将它写入 csproj 文件吗?应用设置?到目前为止,我还没有在网上提供太多信息,并寻求有关如何实施这一点的指导。

variables:
  version.MajorMinor: '1.0' # Manually adjust the version number as needed for semantic versioning. Revision is auto-incremented.
  version.Revision: $[counter(variables['version.MajorMinor'], 0)]
  versionNumber: '$(version.MajorMinor).$(version.Revision)'

steps:
- task: PowerShell@2
  displayName: Set the name of the build (i.e. the Build.BuildNumber)
  inputs:
    targetType: 'inline'
    script: |
      [string] $buildName = "$(versionNumber)_$(Build.SourceBranchName)"
      Write-Host "Setting the name of the build to '$buildName'."
      Write-Host "##vso[build.updatebuildnumber]$buildName"

标签: azure-devopsblazor-server-side

解决方案


您可以在管道中使用一些任务将构建名称写入 csproj 文件和 appsetting 文件。

例如。如果您想在 appsettings.json 文件中写入构建名称。您可以使用文件转换任务

首先,您需要在 appsettings.json 文件中包含 buildName 属性。假设您已包含如下 appsetting.json 文件的 buildName 属性。

{
  "AppSettings": {
        "buildName": "1234"
    }
}

然后,您可以使用文件转换任务替换buildName管道中的。请参阅以下步骤:

1,添加Write-Host "##vso[task.setvariable variable=AppSettings.buildName]$buildName"到上面的powershell任务中定义一个变量AppSettings.buildName并为其分配buildName值。见下文:

- task: PowerShell@2
  displayName: Set the name of the build (i.e. the Build.BuildNumber)
  inputs:
    targetType: 'inline'
    script: |
      [string] $buildName = "$(versionNumber)_$(Build.SourceBranchName)"
      Write-Host "Setting the name of the build to '$buildName'."
      Write-Host "##vso[build.updatebuildnumber]$buildName"
      
      #define variable 'AppSettings.buildName'
      Write-Host "##vso[task.setvariable variable=AppSettings.buildName]$buildName"

2,在您的管道中添加文件转换任务在上述 powershell 任务之后

- task: FileTransform@1
  inputs:
    folderPath: '$(System.DefaultWorkingDirectory)' 
    fileType: 'json'

然后将 appsettings.json 文件中的 buildName 替换为 buildName 的实际值。

有关 XML 变量替换的更多信息,请在此处查看

如果要将构建名称写入 csproj 文件。您需要在 csproj 文件中包含 buildName 属性。然后,您可以使用任务Magic Chunks / RegEx Find & Replace来替换其在管道中的值。例如,请参阅此线程

当您在 appsettings.json/csproj 文件中有构建名称时。然后,您可以在代码中获取它的值以在 UI 上显示它。


推荐阅读