Reputation: 2312
In earlier .NET based applications I implemented a central method for returning application information, usually product name, version and legal copyright. This method was implemented via System.Reflection.Assembly or in newer applications via System.Diagnostics.FileVersionInfo. This allowed me keep the version number in a central place, namely the main assembly file, and edit it easily in Visual Studio project properties.
Now in DNX core all this doesn't seem to be available, neither System.Reflection nor System.Diagnostics.
How would you suggest to manage version information in a DNX core based ASP.NET 5 application in a platform neutral way?
Upvotes: 2
Views: 403
Reputation: 28425
You can implement something like dnx's IRuntimeEnvironment
:
IRuntimeEnvironment
) Now in DNX core all this doesn't seem to be available, neither System.Reflection nor System.Diagnostics.
Not sure what you mean by that. System.Reflection
and System.Diagnostics
are available: https://github.com/aspnet/dnx/blob/219871c6063d00f8297eeafe93266f1048f59a45/src/Microsoft.Dnx.Host/project.json#L21-L23
If you cannot find a particular type, use the PackageSearch website to see in which NuGet package it is
Upvotes: 3
Reputation: 38457
The project.json file has a version number, name, description, copyright, authors etc. These are the same properties used to build a NuGet package. In fact, if you create a 'Class Library (Package)' project, you can compile it directly to a NuGet .nupkg file by checking the option in project properties.
I believe you can read this file using Configuration.GetConfigurationSection
. ApplicationSettings
is just a class with the properties from the project.json that you want to read.
var configurationSection = configuration.GetConfigurationSection(nameof(ApplicationSettings));
var applicationSettings = ConfigurationBinder.Bind<ApplicationSettings>(configurationSection);
Upvotes: 2