2010-05-26 53 views
2

我需要对我的CLR编译知识进行调整,所以我将会泛泛而谈...... Appologies如果我没有足够具体。你可以从bundeled dll中提取dll版本号

我正在处理一个应用程序,该应用程序引用了一个COM库dll,其中包含许多dll。我的问题是,是否可以使用Reflection来获得对子dll的程序集的引用,即获取版本号?或者,如果这个问题没有任何意义,我会尝试重新翻译。

+0

请不要将标签(例如C#)放入标题行。只要将它们留在标签中即可。此外,没有必要说,“嗨”和“谢谢”,或签署职位。 – 2010-05-26 21:42:35

回答

2

没有办法,你没有办法找出COM服务器可能使用的DLL。在非托管代码中没有像Assembly.GetReferencedAssemblies()这样的东西。 Process.Modules尽可能的接近你可以得到的,但是没有办法找出你要迭代的模块实际上是与服务器相关联的,而不是被OpenFileDialog或一些模糊的病毒扫描器废话加载。

如果您知道DLL名称以及它们的位置,那么您可以使用FileVersionInfo类来获取它们的非托管版本资源信息。

+0

我知道dll的名字,你可以提供一个小代码示例吗? – priehl 2010-05-27 12:22:42

+0

对于FileVersionInfo类,MSDN库文章中有一个很好的例子 – 2010-05-27 12:28:19