如何确定DLL是COM还是.NET?

Hao*_*Hao 8 .net vb6

我有一个更新程序,从服务器拉取的文件在一个目录中混合了vb6 dll和.net dll.如何确定一个DLL是否是一个COM?(所以我可以从更新程序中调用regsvr32)

Dan*_*gro 6

我想一种方法是尝试使用System.Reflection.Assembly.LoadFile()加载文件.如果遇到BadImageFormatException,则它不是有效的.NET程序集.这可能是一种更简洁的方法,但这应该有效.

http://msdn.microsoft.com/en-us/library/b61s44e8.aspx


AJ.*_*AJ. 5

要正式执行此操作,您可以检查PE以了解有关每个dll导出的内容类型的更多信息.在MSDN上一篇非常有趣的文章讨论了结构.如果您了解设置,则可以识别.Net的链接(从而缺少指示纯COM dll).