2015-10-30 37 views
0

我的申請是使用System.ServiceModel類參考。在目標機器上,我的應用程序工作的地方,沒有Visual Studio(或任何其他開發環境)的地方,有很多System.servicemodel.dll文件。我想確定哪個.dll恰好是我的應用程序正在使用的。有什麼辦法可以搞清楚嗎?如何確定.NET程序集(組件)的位置?

回答

0

查找程序集中定義的類型,使用該類型獲取Assembly對象,然後使用Location屬性獲取從硬盤加載的路徑。

var path = typeof(System.ServiceModel.ServiceHostBase).Assembly.Location; 
//returns "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel\v4.0_4.0.0.0__b77a5c561934e089\System.ServiceModel.dll" for my machine. 

注意,如果你使用一些其他組件和組件使用Assembly.Load(Byte[])或其他類似的「無路」的方式來加載程序集加載,則位置屬性將返回一個空字符串。在這種情況下,您可以使用Assembly.CodeBase來獲取加載程序集的調用者的位置。

相關問題