.net - referencia - Obtener la versión de tiempo de ejecución de un ensamblado de Silverlight
system badimageformatexception no se puede cargar el archivo o ensamblado (3)
Puedes usar
Assembly.GetExecutingAssembly()
.GetCustomAttributes(false).OfType<AssemblyVersionAttribute>()
.Single().Version;
Quiero mostrar el número de mi versión de la aplicación Silverlight 3 en el cuadro Acerca de, pero cuando uso una llamada .Net tradicional como:
Assembly.GetExecutingAssembly().GetName().Version;
Obtengo una MethodAccessException en la llamada GetName (). ¿Cómo se supone que obtendré el número de versión de mi ensamblaje?
GetName
está marcado como crítico de seguridad y, por lo tanto, obtienes una excepción cuando intentas llamarlo.
Tendrá que usar la propiedad FullName
y analizar la Version=xxxx
de la cadena.
private static Version ParseVersionNumber(Assembly assembly)
{
AssemblyName assemblyName = new AssemblyName(assembly.FullName);
return assemblyName.Version;
}
o esto:
Assembly assembly = Assembly.GetExecutingAssembly();
String version = assembly.FullName.Split('','')[1];
String fullversion = version.Split(''='')[1];
De: http://betaforums.silverlight.net/forums/p/128861/288595.aspx
una publicación al respecto:
http://forums.silverlight.net/forums/p/93400/214554.aspx
Puede ver el archivo js que publiqué aquí: Detectar la versión de Silverlight requerida por un ensamblaje
Su error es esperado. Dado que es crítico para la seguridad, lo anterior es una solución alternativa.