DNX核心应用程序版本信息

时间:2015-08-21 08:34:46

标签: asp.net-core dnx

在早期的基于.NET的应用程序中,我实现了一个返回应用程序信息的核心方法,通常是产品名称,版本和合法版权。此方法是通过System.Reflection.Assembly或通过System.Diagnostics.FileVersionInfo在较新的应用程序中实现的。这允许我将版本号保存在一个中心位置,即主程序集文件,并在Visual Studio项目属性中轻松编辑它。

现在在DNX核心中,所有这些似乎都不可用,无论是System.Reflection还是System.Diagnostics。

您如何建议以平台中立的方式管理基于DNX核的ASP.NET 5应用程序中的版本信息?

2 个答案:

答案 0 :(得分:3)

你可以实现类似dnx的IRuntimeEnvironment

  

现在在DNX核心中,所有这些似乎都不可用,无论是System.Reflection还是System.Diagnostics。

不确定你的意思。 System.ReflectionSystem.Diagnostics可用:https://github.com/aspnet/dnx/blob/219871c6063d00f8297eeafe93266f1048f59a45/src/Microsoft.Dnx.Host/project.json#L21-L23

如果找不到特定类型,请使用PackageSearch网站查看它所在的NuGet包

答案 1 :(得分:2)

project.json文件具有版本号,名称,描述,版权,作者等。这些属性与用于构建NuGet包的属性相同。事实上,如果你创建一个类库(包)'在项目中,您可以通过检查项目属性中的选项将其直接编译为NuGet .nupkg文件。

我相信您可以使用Configuration.GetConfigurationSection阅读此文件。 ApplicationSettings只是一个具有您想要阅读的project.json属性的类。

var configurationSection = configuration.GetConfigurationSection(nameof(ApplicationSettings));
var applicationSettings = ConfigurationBinder.Bind<ApplicationSettings>(configurationSection);