Exemple #1
0
        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());
        }