问题是这样的,我现在需要对发布的Dll做版本控制,一些描述信息要通过 AssemblyDescriptionAttribute 属性写入到发布的程序集中。C#代码:
                        Assembly ass = Assembly.LoadFrom(file); //加载程序集
                        Type descriptionType = typeof(AssemblyDescriptionAttribute);
                        Attribute attr= AssemblyDescriptionAttribute.GetCustomAttribute(ass, descriptionType); //报错!! 查询AssemblyDescriptionAttribute属性的时候出现异常
                        object[] des = ass.GetCustomAttributes(descriptionType, true);
                        foreach (object desc in des)
                        {
                          //DoWork here:
                           ....
                        }报出来的异常是 "未能加载文件或程序集“XXXX”或它的某一个依赖项"我明白这是由于要查询的Dll文件引用了其它的DLL类,而被引用的类没有放在同一目录下造成的。但是问题是,通过Visual Studio 自带的 Object Browser类,却可以在同样的情况下完整的查询出一个程序集的所有属性。 而且它也不需要知道被引用的其它DLL的路径信息,我猜应该是通过对PE32文件解析之类的方式去实现的。我想问下在.net下如何实现类似的功能呢? 就是不通过 Assembly.Load那样的去完整的加载一个DLL然后去取得它的属性,而是把它当成一个孤立的文件,然后用类似解析文件格式的思路去解析它?