2017-02-21 61 views
2

我有一个使用TFS在线构建的.NET Core MVC应用程序,并使用TFS在线发布管理内容发布到Azure。一切都很好。.NET核心应用程序 - 如何在运行时获取内部版本号

我想要做的是让我的应用程序在某处显示内部编号。无所谓......在哪里......但例如在像/ api/buildversion这样的WebAPI端点中。

任何人都可以帮助我如何在运行时获取TFS内部版本号?当应用程序打包/发布时,是否有任何文件包含我可以从应用程序访问的内部版本号?

+0

如果我的解决方案解决了您的问题,您可以接受它作为答案。 –

+0

对不起,延迟,接受!并再次感谢! – Paul

回答

5

简单的方法是,您可以将内部版本号存储在文件中(例如appsettings.json),然后在应用程序代码中获取此数据。

Appsettings.json示例代码:

{ 
    "ConnectionStrings": { 
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-WebApplication1-ab933d83-8f4b-4024-9f3c-1aef5339a8f3;Trusted_Connection=True;MultipleActiveResultSets=true" 
    }, 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Debug", 
     "System": "Information", 
     "Microsoft": "Information" 
    } 
    } 
    "CodeVersion": { 
    "Num": "#{MyBuildNumber}#" 
    } 
} 
  1. 安装Replace Tokens extension
  2. 编辑您的构建定义
  3. 单击变量选项卡,并添加一个变量。 (名称:MyBuildNumber,价值:$(Build.BuildNumber))
  4. 添加构建步骤

enter image description here

+0

这是完美的,尝试过它,它的作用就像一个魅力!非常感谢!! – Paul

2

您需要在编译时将编号保存在应用程序中。

根据您的环境,您可以使用$ Build.BuildNumber或$ Env:BUILD_BUILDNUMBER访问版本号。我通常将它作为一个变量写入我的ApplicationInfo。*中,同时包含版本号和内部版本号。

+0

有道理!你可以帮助一些细节,因为我不是Team Build的专家。我的意思是我需要一个小小的PowerShell脚本,或者我用什么来写入应用程序文件? – Paul

+0

简单地搜索这个问题将得到很多结果。尝试一下,如果遇到问题会引发其他问题... –

+0

谢谢! @ starain的回答看起来就像是我之后的 – Paul

0

有比增加更多的插件和库更简单的方法前更换令牌生成步骤。如果您所使用的Web /应用程序部署方法,扩大文件来变换&变量 enter image description here

假设你想更新说,在你的appsettings.json构建数值

enter image description here

然后,只需更新VSTS版本定义中的变量设置 enter image description here

超级简单。这在八达通IIRC中或多或少是相同的步骤。

相关问题