Estoy usando el siguiente código en un pie de página en mi archivo _Layout.cshtml para poner los datos de la versión de AssemblyInfo en el pie de página de cada página de mi sitio MVC3. Sin embargo:
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
Solo se imprime en el pie de página:
Revision 0.0.0.0
Cuando modifiqué la vista para mostrar toda la información del ensamblaje para el "Ensamblaje en ejecución" usando lo siguiente
@System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString()
Que imprime lo siguiente:
Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Esto muestra que el "Ensamblado en ejecución" no es mi aplicación principal, es la vista en sí.
¿Cómo obtengo la información de montaje para la aplicación ACTUAL, no solo las vistas individuales?
c#
asp.net-mvc-3
reflection
assemblies
razor
Jay Stevens
fuente
fuente
@GetType(YourApplicationNamespace.MvcApplication).Assembly.GetName.Version
para todos los VB.NETers. Nosotros dos.@typeof(YourDefaultNamespace.WebApiApplication).Assembly.GetName().Version
. Incluso puede funcionar sin el espacio de nombres predeterminado:@typeof(WebApiApplication).Assembly.GetName().Version
@typeof(YourApplicationNamespace.MvcApplication).Assembly.GetName().Version.ToString(3)
devuelve 3 de las 4 partes de la versión de montaje si alguien tiene curiosidad. Puede variar entre 0 y 4.@{Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;}
entonces<h1>Ver. @version</h1>
Usar este ayudante funciona para mí:
fuente
Esto funciona para mi. Sin necesidad de mencionar explícitamente el tipo.
fuente
Necesita obtener el ensamblaje de un tipo en el proyecto:
¿Dónde
MyType
está cualquier tipo en el propio proyecto MVC (por ejemplo, un controlador o modelo, o laMvcApplication
clase)?fuente
Ampliando la respuesta de takepara, si desea un trazador de líneas para obtener el atributo AssemblyInformationalVersionAttribute de una vista MVC Razor:
fuente
Puede intentar utilizar GetCallingAssembly (). No estoy seguro de si eso es lo suficientemente alto en la pila de llamadas o no, pero dado que Razor en realidad crea un ensamblado para cada vista, es lógico que su aplicación sea el ensamblado de llamada para el ensamblaje de la vista.
fuente
Mi problema fue que después había cambiado el nombre del espacio de nombres y recibí el error anterior. El problema era la antigua referencia al espacio de nombres en Views \ Web.config. Tuve que cambiarlo de
Project.WebAPI17
aCompany.Project.WebAPI17
fuente
para un controlador de API utilicé esto en función de otras respuestas
fuente
Puede obtenerlo usando la propiedad Name de la siguiente manera:
¿Es esto lo que estás buscando?
fuente
Vaya a Home Controller y simplemente copie este código:
Cambiar nombre
ActionResult
a Stringfuente