azure-devops - 在 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"
解决方案
您可以在管道中使用一些任务将构建名称写入 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 上显示它。
推荐阅读
- asp.net - 如何通过 wscript.shell 将两个参数传递给 cmd
- reactjs - 如何使用从承诺中获得的信息来设置组件的状态以避免反应中的内存泄漏
- swift - 如何使用 SwiftUI 从 CloudKit 中检索数据
- pipe - 这个 Tcl 语句中的“&”是什么意思
- python-3.x - 我应该如何获得适当的布尔结果?
- css - 动画只影响 css-doodle 的第一个元素
- react-native - 反应本机多选
- graph - 在neo4j中获取节点的直接子节点
- angular - Angular:如何切换存储库以从公司内部源下载 node_modules 依赖项
- elasticsearch - 用于脚本标签的 Elasticsearch JAVA API