在早期的基于.NET的应用程序中,我实现了一个返回应用程序信息的核心方法,通常是产品名称,版本和合法版权。此方法是通过System.Reflection.Assembly或通过System.Diagnostics.FileVersionInfo在较新的应用程序中实现的。这允许我将版本号保存在一个中心位置,即主程序集文件,并在Visual Studio项目属性中轻松编辑它。
现在在DNX核心中,所有这些似乎都不可用,无论是System.Reflection还是System.Diagnostics。
您如何建议以平台中立的方式管理基于DNX核的ASP.NET 5应用程序中的版本信息?
答案 0 :(得分:3)
你可以实现类似dnx的IRuntimeEnvironment
:
IRuntimeEnvironment
的实施)现在在DNX核心中,所有这些似乎都不可用,无论是System.Reflection还是System.Diagnostics。
不确定你的意思。 System.Reflection
和System.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);