c# - route - Mostrar la versión del proyecto en la aplicación ASP.NET MVC Core(RC2)
forms asp net core (3)
Según este anuncio , IApplicationEnvironment
ya no existe.
Aún puede acceder a ApplicationVersion
estáticamente utilizando:
Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
Esto funciona para mi. Mi project.json
ve así:
{
"version": "1.0.0.2",
// all the rest
}
Y en mi vista de índice, tengo la siguiente línea en la parte superior:
@Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
Y obtengo 1.0.0.2
correctamente en la salida. Y cuando cambio ese valor y reinicio (compila) la aplicación, la nueva versión se muestra allí.
¿Cómo se muestra la versión de la aplicación desde el proyecto.json? Estoy usando gulp-bump
para autoincrementar la versión, pero no puedo mostrar la versión más reciente. Esto es lo que estoy intentando:
@(Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion)
Esto no funciona, muestra " 1.0.0
" en lugar de valor real de project.json
También probé esto, pero parece que ya no funciona en RC2:
@inject Microsoft.Extensions.PlatformAbstractions.IApplicationEnvironment appEnv
My version number is @(appEnv.ApplicationVersion)
Usé un enfoque diferente, como se indica en esta respuesta, que me dio una versión de SemVer (1.0.0) que está realmente en mi project.json
y no en la 1.0.0.0, que es devuelto por la respuesta aceptada. Entonces el código sería:
var runtimeVersion = typeof(Startup)
.GetTypeInfo()
.Assembly
.GetCustomAttribute<AssemblyInformationalVersionAttribute>()
.InformationalVersion;
Devuelve versiones correctas con sufijos también, es decir, algo así como "2.0.1-dev01"
Dado que las abstracciones de plataforma se enviaron obstinamente con ASP.NET Core 1 y se eliminaron de ASP.NET Core 2 y posteriores, si está utilizando la versión 2 o superior, debe reemplazar esta fila:
Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
Con este:
System.Reflection.Assembly.GetEntryAssembly().GetName().Version
como se especifica en la sección "Reemplazar uso de API" de la página vinculada anterior.