我有一个包含2个Web应用程序项目的解决方案,我已将其配置为持续集成并部署到IIS测试环境。 它完美无缺,我对此感到非常满意。
现在,我想在已部署的网站主页中显示一些信息,这些信息可以让我知道当前版本是什么。 有没有办法检索这种信息?
提前致谢
答案 0 :(得分:1)
是的,有几种方法可以做到这一点
通常作为CI构建步骤的一部分,您可以添加版本号,公司详细信息,签名库等。当来自具有更新元数据的库的请求时,您将能够阅读此信息。 Code snippet to try,请确保找到正确的dll,因为在IIS上它可能不是正在执行的程序集。
同样作为构建过程的一部分,您可以执行xml-poke
或xml-transform
将一些值插入到web.config中,例如插入<appsettings>
部分。 MS build sample。您可能会使用Web应用程序中的ConfigurationManager.AppSettings
。
答案 1 :(得分:1)
构建时可以生成一个非常棒的XML文件。称为BuildInfo.config文件。 https://msdn.microsoft.com/en-us/library/dn449058(v=vs.120).aspx
/p:GenerateBuildInfoConfigFile=True
在Web项目的根目录下创建BuildInfo.config
<?xml version="1.0" encoding="utf-8"?>
<DeploymentEvent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/DeploymentEvent/2013/06">
<ProjectName>Agriculture</ProjectName>
<SourceControl type="TFS">
<TfsSourceControl>
<ProjectItemSpec>$/ServerPath/To/Your/Project.sln</ProjectItemSpec>
<ProjectVersionSpec>C39469</ProjectVersionSpec>
</TfsSourceControl>
</SourceControl>
<Build type="TeamBuild">
<MSBuild>
<BuildDefinition kind="informative, summary">CIA_TEST</BuildDefinition>
<BuildLabel kind="label">YOUR_PROJECT_20170406.04</BuildLabel>
<BuildId kind="id">a7e16be8-141d-4193-b200-b57b19f1564a,vstfs:///Build/Build/34814</BuildId>
<BuildTimestamp kind="informative, summary">Thu, 06 Apr 2017 16:49:22 GMT</BuildTimestamp>
<Configuration kind="informative">Release</Configuration>
<Platform kind="informative">AnyCPU</Platform>
</MSBuild>
</Build>
</DeploymentEvent>