如何从 ASP.NET 应用程序内部访问 `Build.BuildNumber` Azure 变量?
How can I access the `Build.BuildNumber` Azure variable from the inside of an ASP.NET application?
如何从 ASP.NET 应用程序内部访问 Build.BuildNumber
Azure 变量?
它是否与装配编号相同并且可以使用 (source) 检索?
Assembly web = Assembly.Load("App_Code");
AssemblyName webName = web.GetName();
string myVersion = webName.Version.ToString();
我是说this Build.BuildNumber
:
The name of the completed build, also known as the run number. You can specify what is included in this value.
A typical use of this variable is to make it part of the label format, which you specify on the repository tab.
Note: This value can contain whitespace or other invalid label characters. In these cases, the label format will fail.
This variable is agent-scoped, and can be used as an environment variable in a script and as a parameter in a build task, but not as part of the build number or as a version control tag.
管道中生成的内部版本号与代码中的版本号之间没有直接关系。怎么可能呢,因为要做到这一点,需要更改代码以使代码包含内部版本号。
但是,有些构建任务能够做到这一点:获取 devops 管道构建号并将其注入代码中。
我使用 this project 中的 VersionAssemblies 和 VersionDotNetCoreAssemblies 任务。
您必须指定内部版本号的配置方式,请参阅 the docs。然后你必须 运行 在实际构建完成之前完成任务。
yaml 管道看起来与此类似:
name: '1.$(date:yyyy).$(DayOfYear)$(rev:.r)'
<snip>
- task: VersionDotNetCoreAssemblies@2
inputs:
Path: '$(Build.SourcesDirectory)'
VersionNumber: '$(Build.BuildNumber)'
Injectversion: False
VersionRegex: '\d+\.\d+\.\d+\.\d+'
FilenamePattern: '.csproj'
AddDefault: true
OutputVersion: 'OutputedVersion'
然后,在代码中我们可以这样做:
var version = assembly.GetName().Version.ToString();
输出将类似于:
1.2021.109.1
找到构建任务的完整文档here。还有 .Net Framework(不是 .Net Core)程序集的任务。
如果您想使用内部版本号对 DLL 进行版本控制,那么最好的方法是 此处。
但是,如果您想在代码中访问内部版本号,可以通过以下方式进行:
var buildNumber = Environment.GetEnvironmentVariable("Build_BuildNumber", EnvironmentVariableTarget.Process);
如何从 ASP.NET 应用程序内部访问 Build.BuildNumber
Azure 变量?
它是否与装配编号相同并且可以使用 (source) 检索?
Assembly web = Assembly.Load("App_Code");
AssemblyName webName = web.GetName();
string myVersion = webName.Version.ToString();
我是说this Build.BuildNumber
:
The name of the completed build, also known as the run number. You can specify what is included in this value.
A typical use of this variable is to make it part of the label format, which you specify on the repository tab.
Note: This value can contain whitespace or other invalid label characters. In these cases, the label format will fail.
This variable is agent-scoped, and can be used as an environment variable in a script and as a parameter in a build task, but not as part of the build number or as a version control tag.
管道中生成的内部版本号与代码中的版本号之间没有直接关系。怎么可能呢,因为要做到这一点,需要更改代码以使代码包含内部版本号。
但是,有些构建任务能够做到这一点:获取 devops 管道构建号并将其注入代码中。
我使用 this project 中的 VersionAssemblies 和 VersionDotNetCoreAssemblies 任务。
您必须指定内部版本号的配置方式,请参阅 the docs。然后你必须 运行 在实际构建完成之前完成任务。
yaml 管道看起来与此类似:
name: '1.$(date:yyyy).$(DayOfYear)$(rev:.r)'
<snip>
- task: VersionDotNetCoreAssemblies@2
inputs:
Path: '$(Build.SourcesDirectory)'
VersionNumber: '$(Build.BuildNumber)'
Injectversion: False
VersionRegex: '\d+\.\d+\.\d+\.\d+'
FilenamePattern: '.csproj'
AddDefault: true
OutputVersion: 'OutputedVersion'
然后,在代码中我们可以这样做:
var version = assembly.GetName().Version.ToString();
输出将类似于:
1.2021.109.1
找到构建任务的完整文档here。还有 .Net Framework(不是 .Net Core)程序集的任务。
如果您想使用内部版本号对 DLL 进行版本控制,那么最好的方法是
但是,如果您想在代码中访问内部版本号,可以通过以下方式进行:
var buildNumber = Environment.GetEnvironmentVariable("Build_BuildNumber", EnvironmentVariableTarget.Process);