Juste au cas où quelqu'un s'est toujours intéressée; ceci devrait faire l'affaire et devrait être un peu plus sûr que de simplement prendre l' BaseType
de ApplicationInstance
d'obtenir vos mains sur le Global.asax mise en œuvre.
Mondiale.asax est toujours compilé dans la même assemblée que l'assemblée des attributs de AssemblyInfo.cs, donc cela devrait fonctionner pour toutes les applications web qui définissent un Mondial.asax.
Pour ceux qui ne définissent pas leurs propres Mondiale.asax, il reviendra à la version de l'générés global_asax
type, qui est toujours 0.0.0.0, et pour les applications qui ne sont pas des applications web, il sera juste de retour pas de version.
Bonus; en utilisant l' BuildManager
classe n'a pas besoin d'un actif HttpContext
de l'instance, ce qui signifie que vous devriez être en mesure d'utiliser cette application code de démarrage ainsi.
public static Version GetHttpApplicationVersion() {
Type lBase = typeof(HttpApplication);
Type lType = BuildManager.GetGlobalAsaxType();
if (lBase.IsAssignableFrom(lType))
{
while (lType.BaseType != lBase) { lType = lType.BaseType; }
return lType.Assembly.GetName().Version;
}
else
{
return null;
}
}