.Net SDK下有很多命令工具,有许多在我们平时开发应用中很有帮助。最近看书总结了一些,但是难免有点以偏概全,挂一漏万。下面就介绍这些命令的基本用法,实际应用中可以参考MSDN。
切入正题,打开SDK命令提示,如下图:
1、ildasm (IL Disassembler IL 反汇编器)。
它是一个重要的工具,通过它,可以查看元数据(metedata)信息,IL等。
2、SN.exe(Strong Name)强名称工具。
可使用它来生产密钥、查看密钥,并使用它生成的私钥对程序集签名。写入密钥使用它的 -t选项,查看公钥用-tp 选项,如下图:
3、NGen.exe 本地代码生成器 。
将一个程序集的所有IL代码编译成本地代码,并将这些本地代码保存到一个单独的文件中。NGen.exe对最终执行环境做出的假设是非常保守的,所有他生成的代码不会像JIT生成的代码那样高度优化。
本机映像生成器 (Ngen.exe) 是一个提高托管应用程序性能的工具。Ngen.exe 创建本机映像(包含经编译的特定于处理器的机器代码的文件),并将它们安装到本地计算机上的本机映像缓存中。运行库可从缓存中使用本机映像,而不是使用实时 (JIT) 编译器编译原始程序集。
主要介绍它的三个选项:install(安装)、uninstall(卸载)、display(显示).
它安装有点类似将程序集安装在GAC中,有点不同的是它安装的程序集不需要强签名,而如果要将程序集安装在GAC中,则需要强签名。在使用display,显示程序集之前必须先通过install进行安装。
安装使用install选项:
卸载使用uninstall选项:
显示使用display选项:
4、WSDL。
这个工具大家应该很熟悉,它就是生成WebService代理类的工具,可以通过URI生成,也可以通过Web服务描述语言(WDSL)生成。
5、AL 程序集链接器。
可生成一个EXE或者PE文件,但不能将多个文件合并成一个。也可以将资源文件嵌入到一个程序集中。可以生成附属程序集(标明了一种具体文化语言的程序集)
由此可见AL命令生成的程序集只是通过将链接的文件生成一个新的文件,连接文件还是还是存在的
6、CLRVer.exe CLR版本查看工具
列出一台机器上安装的所有CLR版本。低版本下不能查看高版本。如在3.5下:
4.0下:
7、DumpBin.exe\CorFlags.exe
用它们检查编译器生成的托管模块所签入的信息。CorFlags转换工具可用于配置可移植可执行映像的标头CorFlags部分
8、ILAsm.exe IL汇编器,
ILDasm IL反汇编器,MSIL 汇编程序。MSIL 汇编程序从 Microsoft 中间语言 (MSIL) 生成可移植可执行的 (PE) 文件。(有关 MSIL 的更多信息,请参见 编译为 MSIL。)可以运行结果可执行文件(该文件包含 MSIL 和所需的元数据)以确定 MSIL 是否按预期执行。
将IL代码生成的PE文件:
确保 .il 源文件中的最后一行代码具有结尾空白或行尾字符。如在使用ILDASM生成的IL代码末尾如下图:
9、PEVerify.exe
它检查一个程序集的所有方法,帮助确定其 MSIL 代码及关联的元数据是否满足类型安全要求。/md (metedata简写)、/il(中间语言)是它选择项中的两个。其中/md针对程序集中的元数据(metedata);/IL针对程序集中实现的方法执行 MSIL语言类型安全类型检查;如果两者都未指定,则都会检查,先执行/md检查,如果没有错误则执行/il检查,否则会执行检查。;如果指定/IL检查,则无论/md检查如何都会执行/il检查。
10、TlbImp.exe
COM 类型库中的类型定义转换为公共语言运行库程序集中的等效定义。Tlbimp.exe 的输出为二进制文件(程序集),
该文件中包含在原始类型库中定义的类型的运行库元数据。可以使用诸如 Ildasm.exe 这样的工具检查此文件。
11、Tlbexp.exe 类型库导出程序。
生成一个类型库,该类型库描述公共语言运行库程序集中定义的类型,应用程序(如 Visual Basic 6.0)可以使用生成的类型库绑定到程序集中定义的 .NET 类型。不能使用 Tlbexp.exe 从使用类型库导入程序 (Tlbimp.exe) 导入的程序集生成类型库
12、RegAsm.exe 程序集注册工具
程序集注册工具读取程序集中的元数据,并将所需的项添加到注册表中。注册表允许 COM 客户程序以透明方式创建 .NET Framework 类。类一经注册,任何 COM 客户程序都可以使用它,就好像该类是一个 COM 类。类仅在安装程序集时注册一次。程序集中的类实例直到被实际注册时,才能从 COM 中创建。
13、CSC.EXE 编译。如果程序代码中含有不安全的类型,使用它编译时会失败。
14、SVCUtil.exe。
它的作用类似WSDL,不同的是它用于WCF,将WCF服务生产代理类。
15、GACUtil.exe。
在GAC中安装一个强命名程序集。弱命名程序集是不能被安装到GAC中的。默认情况下,执行该命令的用户必须是Windows 或Administrator下的,其他组下的用户不能使用此命令对程序集进行安装、卸载、安装弱名称程序集时,如下图:
使用之前介绍的强名称工具SN生成的密钥对程序集进行签名,然后安装:
查看程序集:
卸载程序集:
16、MakeCert.exe证书生成工具。
仅用于生成用于测试目的的x.509证书。使用它时,有许多可选项。其中-sk用于指定密钥容器的位置,此位置包含私钥。如果不存在,系统将自动创建一个。-n 用于指定证书主题,此名称必须符合 X.509 标准。最简单的方法是在双引号中指定此名称,并加上前缀 CN=;
17、CertMgr.exe。
证书管理工具,管理证书、证书信任列表、证书吊销列表它使用证书的两类存储区:StoreFile和系统存储区。不指定证书存储区类型,它能识别存储区类型并执行适当的操作。
在命令行中查看证书信息:
运行时如果不指定任何参数,将启动GUI界面:
18、SignTool.exe(.Net FrameWork 1.0、1.1版本中为ChkTrust.exe)。
用于对文件进行数字签名,验证文件或时间戳文件的签名。为了检验SignTool对文件签名,首先使用它的Verify选项验证一下文件:
对文件签名:
19、StoreAdm.独立存储工具。
管理独立存储,提供列出用户的存储区和删除它们的选项:
20、PermView.exe权限查看工具。允许查看程序集的请求权限(仅仅在.Net FrameWork 1.0\1.1中可用)
21、SecUtil
从程序集中提取强名称信息或公钥,并将该信息转换为可合并到代码中的格式。
.Net FrameWork 4.0中已经不再使用。
22、SetReg.exe(在.Net FrameWork 1.0、1.1以上版本中已使用SignTool)。设置注册表工具
23、Cert2Spc.exe 发行者证书测试工具。
通过一个或多个X.509证书创建发行者证书。仅用于测试目的