Je travaille sur un programme et j’essaie d’afficher la version FILE de l’assembly.
public static ssortingng Version { get { Assembly asm = Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(asm.Location); return Ssortingng.Format("{0}.{1}", fvi.FileMajorPart, fvi.FileMinorPart); } }
Pour le moment, cela ne renvoie que les deux premiers numéros de version de “AssemblyVersion”, pas “AssemblyFileVersion”. J’aimerais vraiment juste faire référence à AssemblyFileVersion plutôt que de stocker une variable interne appelée “Version” que je dois mettre à jour à la fois pour cette version et celle de l’assembly …
[assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyFileVersion("3.5.0")]
C’est mon AssemblyFileVersion de AssemblyInfo.cs. Je voudrais juste faire référence à la partie “3.5.x”, pas à la “1.0. *”: /
Merci Zack
Utilisez ProductMajorPart / ProductMinorPart au lieu de FileMajorPart / FileMinorPart:
public static ssortingng Version { get { Assembly asm = Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(asm.Location); return Ssortingng.Format("{0}.{1}", fvi.ProductMajorPart, fvi.ProductMinorPart); } }
using System.Reflection; using System.IO; FileVersionInfo fv = System.Diagnostics.FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location); Console.WriteLine("AssemblyVersion : {0}", Assembly.GetExecutingAssembly().GetName().Version.ToSsortingng()); Console.WriteLine ("AssemblyFileVersion : {0}" , fv.FileVersion.ToSsortingng ());
var fileVersion = GetCustomAtsortingbuteValue(assembly, "Version"); private static ssortingng GetCustomAtsortingbuteValue(Assembly assembly, ssortingng propertyName) where T : Atsortingbute { if (assembly == null || ssortingng.IsNullOrEmpty(propertyName)) return ssortingng.Empty; object[] atsortingbutes = assembly.GetCustomAtsortingbutes(typeof(T), false); if (atsortingbutes.Length == 0) return ssortingng.Empty; var atsortingbute = atsortingbutes[0] as T; if (atsortingbute == null) return ssortingng.Empty; var propertyInfo = atsortingbute.GetType().GetProperty(propertyName); if (propertyInfo == null) return ssortingng.Empty; var value = propertyInfo.GetValue(atsortingbute, null); return value.ToSsortingng(); }
Pour obtenir la version de l’assembly en cours d’exécution, vous pouvez utiliser:
using System.Reflection; Version version = Assembly.GetExecutingAssembly().GetName().Version;
La classe Assembly peut également charger des fichiers et accéder à tous les assemblys chargés dans un processus.
Je suppose que vous devrez utiliser la classe FileVersionInfo.
System.Diagnostics.FileVersionInfo.GetVersionInfo(FullpathToAssembly)
protected void Application_Start(object sender, EventArgs e) { _log.InfoFormat("*************{0} **** Version: {1}************ ", Assembly.GetExecutingAssembly().GetName().Name, Assembly.GetExecutingAssembly().GetName().Version); }
Sortie
INFO Global – ************* CustomerFile **** Version: 1.0.17.2510 *************