tag route net mvc data asp all c# asp.net-mvc asp.net-core .net-core-rc2

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.