O .NET Core já caminha para a sua versão 3.0, trazendo a cada novo release importantes novidades e grandes avanços em termos de performance. Independentemente do tipo de projeto criado nesta plataforma, haverá situações nas quais se fará necessário apresentar em uma aplicação qual a versão de runtime do .NET Core estamos utilizando.
Obter esta informação é um procedimento relativamente fácil, conforme demonstrado na listagem a seguir (uma Console Application criada com o .NET Core 2.2):
- Será obtida uma instância da classe Assembly (namespace System.Reflection), a partir do método estático GetEntryAssembly;
- Com este objeto será então acionado o método GetCustomAttribute, o qual receberá como parâmetro o tipo TargetFrameworkAttribute(namespace System.Runtime.Versioning). Na propriedade FrameworkName da referência retornada constará o runtime da aplicação.
using System;
using System.Reflection;
using System.Runtime.Versioning;
namespace ExemploVersao
{
class Program
{
static void Main()
{
string versaoAtual = Assembly
.GetEntryAssembly()?
.GetCustomAttribute<TargetFrameworkAttribute>()?
.FrameworkName;
Console.WriteLine(
$"Versão atual do .NET Core: {versaoAtual}");
}
}
}
Como resultado da execução deste projeto teremos:


Ao executar o mesmo código por meio de uma Console Application criada com o .NET Core 3.0 Preview 5 o resultado será:
