我的应用程序正在使用System.ServiceModel
类引用。在目标计算机上,我的应用程序工作,没有Visual Studio(或任何其他开发环境),有很多System.servicemodel.dll文件。我想确定我的应用程序正在使用哪个.dll。有什么方法可以搞清楚吗?
答案 0 :(得分: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[])
或其他类似的“无路径”方式加载程序集来加载程序集,则location属性将返回一个空字符串。在这种情况下,您可以使用Assembly.CodeBase
来获取加载程序集的调用者的位置。