public AssemblyInfo(string path) { _fileInfo = new FileInfo(path); _assembly = Assembly.LoadFrom(path); _assemblyName = _assembly.GetName(); switch (_fileInfo.Extension.ToLower()) { case ".exe": Kind = AssemblyKind.Exe; break; case ".dll": Kind = AssemblyKind.Dll; break; default: Kind = AssemblyKind.Unknown; break; } foreach (var attr in _assembly.CustomAttributes) { // ReSharper disable once SwitchStatementMissingSomeCases switch (attr.AttributeType.FullName) { case "System.Runtime.CompilerServices.CompilationRelaxationsAttribute": break; case "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute": break; case "System.Diagnostics.DebuggableAttribute": DebugInfo = GetDebugInfo(attr.ConstructorArguments[0].Value); break; case "System.Reflection.AssemblyConfigurationAttribute": break; case "System.Runtime.InteropServices.ComVisibleAttribute": break; case "System.Reflection.AssemblyFileVersionAttribute": break; case "System.Reflection.AssemblyInformationalVersionAttribute": break; case "System.Reflection.AssemblyProductAttribute": Product = attr.ConstructorArguments[0].Value.ToString(); break; case "System.Reflection.AssemblyTrademarkAttribute": Trademark = attr.ConstructorArguments[0].Value.ToString(); break; case "System.Reflection.AssemblyTitleAttribute": Title = attr.ConstructorArguments[0].Value.ToString(); break; case "System.Reflection.AssemblyDescriptionAttribute": Description = attr.ConstructorArguments[0].Value.ToString(); break; case "System.Reflection.AssemblyCompanyAttribute": Company = attr.ConstructorArguments[0].Value.ToString(); break; case "System.Runtime.InteropServices.GuidAttribute": Guid = attr.ConstructorArguments[0].Value.ToString(); break; case "System.Reflection.AssemblyCopyrightAttribute": Copyright = attr.ConstructorArguments[0].Value.ToString(); break; case "System.Runtime.Versioning.TargetFrameworkAttribute": TargetFramework = attr.ConstructorArguments[0].Value.ToString(); if (TargetFramework.StartsWith(".NETFramework,Version=v")) { FrameworkVersion = TargetFramework.Replace(".NETFramework,Version=v", ""); } break; } } References = _assembly.GetReferencedAssemblies(); ReferencesAsText = string.Join(Environment.NewLine, References.Select(r => r.Name).ToArray()); }