With Assembly, we can get some informations, there are:
-
AssemblyTitleAttribute
-
AssemblyCompanyAttribute
-
AssemblyFileVersionAttribute
-
AssemblyProductAttribute
-
AssemblyCopyrightAttribute
-
AssemblyDescriptionAttribute
-
ETC
For completed list, use this:
1: Assembly executingAssembly = Assembly.GetExecutingAssembly();2: object[] customAttributes = executingAssembly.GetCustomAttributes(false);
1: Dictionary<string, string> dllFileNames = new Dictionary<string, string>();
2: string directory = @"D:\Inetpub\wwwroot\Windows.Test\bin";
3: DirectoryInfo directoryInfo = new DirectoryInfo(directory);
4: if (directoryInfo != null)
5: {6: foreach (FileInfo fileInfo in directoryInfo.GetFiles("*.dll", SearchOption.AllDirectories))
7: {8: if (!dllFileNames.ContainsKey(fileInfo.Name))
9: dllFileNames.Add(fileInfo.Name, fileInfo.FullName);10: else
11: {12: int assembly1Version = 0;
13: Assembly assembly1 = Assembly.LoadFile(dllFileNames[fileInfo.Name]);14: object[] customAttributes = assembly1.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false);
15: if (customAttributes.Length > 0)
16: {17: string version = ((AssemblyFileVersionAttribute)customAttributes[0]).Version;
18: //Parse string version to int version
19: // ex: 1.0.0.1 >> 1001
20: assembly1Version = Program.VersionToInt(version); 21: } 22: 23: int assembly2Version = 0;
24: Assembly assembly2 = Assembly.LoadFile(fileInfo.FullName);25: customAttributes = assembly2.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false);
26: if (customAttributes.Length > 0)
27: {28: string version = ((AssemblyFileVersionAttribute)customAttributes[0]).Version;
29: //Parse string version to int version
30: // ex: 1.0.0.1 >> 1001
31: assembly2Version = Program.VersionToInt(version); 32: } 33: 34: if (assembly2Version > assembly1Version)
35: { 36: dllFileNames.Remove(fileInfo.Name); 37: dllFileNames.Add(fileInfo.Name, fileInfo.FullName); 38: } 39: } 40: } 41: 42: foreach (string dllFileName in dllFileNames.Keys)
43: {44: string fullName = dllFileNames[dllFileName];
45: //Some methods
46: } 47: }
No comments:
Post a Comment