HOW TO:检索应用程序当前执行代码的引用信息

HOW TO:检索应用程序当前执行代码的引用信息

 

 

Author:水如烟(http://blog.csdn.net/lzmtw)

 

Date: 2005-4-17

 

 

    Shared Sub GetReferenceInfomations()

 

        Dim a As System.Reflection.[Assembly] = System.Reflection.Assembly.GetExecutingAssembly

 

        For Each r As System.Reflection.AssemblyName In a.GetReferencedAssemblies

 

            Dim ra As System.Reflection.[Assembly] = System.Reflection.Assembly.Load(r.FullName)

 

            Console.WriteLine("引用Name:{0},引用Dll:{1}", r.Name, ra.Location)

 

        Next

 

    End Sub

 

 

NET应用程序对系统提供的程序集的引用采用缓存机制,我不懂这个机制,只能是看一看读一读。

 

上面代码在我本机运行的结果是这样的(我的系统安装在i盘,Windows2003Server):

 

 

引用Name:Microsoft.VisualBasic,引用Dll:i:/windows/assembly/gac/microsoft.visualbasic/7.0.5000.0__b03f5f7f11d50a3a/microsoft.visualbasic.dll

 

引用Name:TraceLog,引用Dll:i:/程序设计/test/solutionlog/testruntimetypehandle/bin/tracelog.dll

 

引用Name:System,引用Dll:i:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll

 

引用Name:System.Data,引用Dll:i:/windows/assembly/gac/system.data/1.0.5000.0__b77a5c561934e089/system.data.dll

 

引用Name:System.Xml,引用Dll:i:/windows/assembly/gac/system.xml/1.0.5000.0__b77a5c561934e089/system.xml.dll

 

 

注意到没有,它并不是引用I:/WINDOWS/Microsoft.NET/Framework/v1.1.4322里的DLL。对于用户的,它倒是到用户DLL所在地址去找。通过NET提供的某个命令(我忘了),可以将用户的DLL放到i:/windows/assembly/下,程序运行时自动到这个目录下去引用。

 

 

你还可以发现,一般情形下,你用资源管理器是找不到i:/windows/assembly/gac或以下的子文件夹的(我原来估计是Folder.Htt文件里头的配置,哈,Windows2003已经取消这个文件了),不知非Windows2003的系统能不能看到。但这个文件是确实存在的,你将i:/windows/assembly/gac/system.xml/1.0.5000.0__b77a5c561934e089/system.xml.dll

 

复制粘贴到地址栏上然后回车,就可以“下载”这个文件的了。或者你运行cmd.exe进入dos,可以dir出这些文件夹和文件的了。

 

 

文件夹gac有特别的含义,它表示system.xml.dll的缓存类型为“Gac”,这个信息你可以通过“Microsoft .NET Framework 1.1 配置”查到。

 

 i:/windows/assembly/gac/system.xml/1.0.5000.0__b 77a 5c561934e089/system.xml.dll的意义为:

 

gac ,缓存类型
system.xml
,程序集名称
1.0.5000.0
,版本号
b 77a 5c561934e089
,公钥标记

 

以后有必要再深入一下。如果各位有补充或修改补充的话那再好不过的了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值