2010-05-26 55 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