Azure devops 从Azure DevOps发布管道获取要在网站中显示的发布和版本号

Azure devops 从Azure DevOps发布管道获取要在网站中显示的发布和版本号,azure-devops,azure-web-app-service,azure-pipelines,Azure Devops,Azure Web App Service,Azure Pipelines,我希望能够在Asp.Net MVC核心网站中显示发布号(*1 in pic)和内部版本号(*2 in pic)-用于该特定网站,该网站是使用Azure DevOps构建和发布的 因此,如果我签入MVC网站的代码,构建和发布过程将启动并部署该网站——现在我希望同一个网站在页脚中显示“release xxxxx” 它可以是一个JSON文件、一个环境变量或其他东西——只要我能从Asp.NETCore访问它,我就很高兴 如何才能做到这一点 如果您希望在构建和部署的当前应用程序中显示数据,您可以获得变量值

我希望能够在Asp.Net MVC核心网站中显示发布号(*1 in pic)和内部版本号(*2 in pic)-用于该特定网站,该网站是使用Azure DevOps构建和发布的

因此,如果我签入MVC网站的代码,构建和发布过程将启动并部署该网站——现在我希望同一个网站在页脚中显示“release xxxxx”

它可以是一个JSON文件、一个环境变量或其他东西——只要我能从Asp.NETCore访问它,我就很高兴

如何才能做到这一点


如果您希望在构建和部署的当前应用程序中显示数据,您可以获得变量值,如每个环境变量:

var releaseName = Environment.GetEnvironmentVariable("Release_ReleaseName", EnvironmentVariableTarget.Process);
var buildNumber= Environment.GetEnvironmentVariable("Build_BuildNumber", EnvironmentVariableTarget.Process);

如果要在外部应用程序中显示数据:

您可以使用获取所有发布数据。发布的API是:

您得到了一个包含发布信息的大JSON,包括发布名称:

{
    "id":  205,
    "name":  "Release-93",
在工件数组中,您可以获得构建id(在
definitionReference.version.name
下):

因此,在Asp.NETMVC核心应用程序中,只需调用GetRESTAPI,您就拥有了所有数据

此外,您可以使用并使用
GetRelease()
方法获取数据:

string projectName = "TestProject";
VssConnection connection = Context.Connection;
ReleaseHttpClient releaseClient = connection.GetClient<ReleaseHttpClient>();

List<WebApiRelease> releases = releaseClient.GetReleasesAsync(project: projectName).Result;

int releaseId = releases.FirstOrDefault().Id;

// Show a release
WebApiRelease release = releaseClient.GetReleaseAsync(project: projectName, releaseId: releaseId).Result;
// Now get the release name and build nubmer
string projectName=“TestProject”;
VssConnection connection=Context.connection;
ReleaseHttpClient releaseClient=connection.GetClient();
List releases=releaseClient.GetReleasesAsync(项目:projectName).Result;
int releaseId=releases.FirstOrDefault().Id;
//释放
webapirease release=releaseClient.getreleaseaseasync(项目:projectName,releaseId:releaseId);
//现在获取发布名称并构建nubmer

解决方案似乎是在构建期间使用Azure Devops插件,在构建/发布期间替换.config文件中的字符串,然后在运行时从代码中访问这些值


这里有更详细的描述:

我想我的问题可能有点不清楚。当管道构建和发布网站时,我希望该网站显示当前部署的构建和发布版本。我现在编辑了我的问题以使其更清楚。您添加的代码获得了一个环境变量,这很好,但是这些变量没有设置(当我尝试在站点中访问它们时,它们是空的-并且我使用Kudu检查了Azure站点中的所有环境变量)。我猜我必须在变量中添加一些内容到发布过程中?换句话说:如何让发布管道在我要部署到的azure web app中设置环境变量?如何在azure web app中设置普通环境变量?通过azure门户,在网站=>配置下
"version":  {
              "id":  "1439",
              "name":  "TestVars_20190829.1439..11"
string projectName = "TestProject";
VssConnection connection = Context.Connection;
ReleaseHttpClient releaseClient = connection.GetClient<ReleaseHttpClient>();

List<WebApiRelease> releases = releaseClient.GetReleasesAsync(project: projectName).Result;

int releaseId = releases.FirstOrDefault().Id;

// Show a release
WebApiRelease release = releaseClient.GetReleaseAsync(project: projectName, releaseId: releaseId).Result;
// Now get the release name and build nubmer