.Net SDK下有很多命令工具,有许多在我们平时开发应用中很有帮助。最近看书总结了一些,但是难免有点以偏概全,挂一漏万。下面就介绍这些命令的基本用法,实际应用中可以参考MSDN。

切入正题,打开SDK命令提示,如下图:

.Net Framework SDK下的命令汇总_看书

1、ildasm (IL Disassembler IL 反汇编器)

它是一个重要的工具,通过它,可以查看元数据(metedata)信息,IL等。

  • 保存、查看IL代码:在VS2008命令窗口输入ILDAsm,然后通过它的【文件】菜单打开文件,如下图:

.Net Framework SDK下的命令汇总_实际应用_02

.Net Framework SDK下的命令汇总_休闲_03

.Net Framework SDK下的命令汇总_开发_04

  • 查看元数据信息:在ILDASM中按"Ctrl+M"即能查看元数据信息。如下图

.Net Framework SDK下的命令汇总_开发_05

2、SN.exe(Strong Name)强名称工具。

可使用它来生产密钥、查看密钥,并使用它生成的私钥对程序集签名。写入密钥使用它的 -t选项,查看公钥用-tp 选项,如下图:

.Net Framework SDK下的命令汇总_工具_06

3、NGen.exe 本地代码生成器

将一个程序集的所有IL代码编译成本地代码,并将这些本地代码保存到一个单独的文件中。NGen.exe对最终执行环境做出的假设是非常保守的,所有他生成的代码不会像JIT生成的代码那样高度优化。
本机映像生成器 (Ngen.exe) 是一个提高托管应用程序性能的工具。Ngen.exe 创建本机映像(包含经编译的特定于处理器的机器代码的文件),并将它们安装到本地计算机上的本机映像缓存中。运行库可从缓存中使用本机映像,而不是使用实时 (JIT) 编译器编译原始程序集。
主要介绍它的三个选项:install(安装)、uninstall(卸载)、display(显示).
它安装有点类似将程序集安装在GAC中,有点不同的是它安装的程序集不需要强签名,而如果要将程序集安装在GAC中,则需要强签名。在使用display,显示程序集之前必须先通过install进行安装。

安装使用install选项:

.Net Framework SDK下的命令汇总_开发_07

卸载使用uninstall选项:

.Net Framework SDK下的命令汇总_看书_08

显示使用display选项:

.Net Framework SDK下的命令汇总_看书_09

4、WSDL

这个工具大家应该很熟悉,它就是生成WebService代理类的工具,可以通过URI生成,也可以通过Web服务描述语言(WDSL)生成。

.Net Framework SDK下的命令汇总_休闲_10

5、AL 程序集链接器

可生成一个EXE或者PE文件,但不能将多个文件合并成一个。也可以将资源文件嵌入到一个程序集中。可以生成附属程序集(标明了一种具体文化语言的程序集)

.Net Framework SDK下的命令汇总_休闲_11

.Net Framework SDK下的命令汇总_看书_12

由此可见AL命令生成的程序集只是通过将链接的文件生成一个新的文件,连接文件还是还是存在的
6、CLRVer.exe CLR版本查看工具

列出一台机器上安装的所有CLR版本。低版本下不能查看高版本。如在3.5下:

.Net Framework SDK下的命令汇总_开发_13

4.0下:

.Net Framework SDK下的命令汇总_开发_14

7、DumpBin.exe\CorFlags.exe

用它们检查编译器生成的托管模块所签入的信息。CorFlags转换工具可用于配置可移植可执行映像的标头CorFlags部分

.Net Framework SDK下的命令汇总_实际应用_15

.Net Framework SDK下的命令汇总_看书_16

8、ILAsm.exe IL汇编器

ILDasm IL反汇编器,MSIL 汇编程序。MSIL 汇编程序从 Microsoft 中间语言 (MSIL) 生成可移植可执行的 (PE) 文件。(有关 MSIL 的更多信息,请参见 编译为 MSIL。)可以运行结果可执行文件(该文件包含 MSIL 和所需的元数据)以确定 MSIL 是否按预期执行。

.Net Framework SDK下的命令汇总_开发_17

将IL代码生成的PE文件:

.Net Framework SDK下的命令汇总_看书_18

确保 .il 源文件中的最后一行代码具有结尾空白或行尾字符。如在使用ILDASM生成的IL代码末尾如下图:

.Net Framework SDK下的命令汇总_实际应用_19

9、PEVerify.exe

它检查一个程序集的所有方法,帮助确定其 MSIL 代码及关联的元数据是否满足类型安全要求。/md (metedata简写)、/il(中间语言)是它选择项中的两个。其中/md针对程序集中的元数据(metedata);/IL针对程序集中实现的方法执行 MSIL语言类型安全类型检查;如果两者都未指定,则都会检查,先执行/md检查,如果没有错误则执行/il检查,否则会执行检查。;如果指定/IL检查,则无论/md检查如何都会执行/il检查。

.Net Framework SDK下的命令汇总_工具_20

10、TlbImp.exe

COM 类型库中的类型定义转换为公共语言运行库程序集中的等效定义。Tlbimp.exe 的输出为二进制文件(程序集),
该文件中包含在原始类型库中定义的类型的运行库元数据。可以使用诸如 Ildasm.exe 这样的工具检查此文件。
.Net Framework SDK下的命令汇总_工具_21

.Net Framework SDK下的命令汇总_开发_22

11、Tlbexp.exe 类型库导出程序。

生成一个类型库,该类型库描述公共语言运行库程序集中定义的类型,应用程序(如 Visual Basic 6.0)可以使用生成的类型库绑定到程序集中定义的 .NET 类型。不能使用 Tlbexp.exe 从使用类型库导入程序 (Tlbimp.exe) 导入的程序集生成类型库

.Net Framework SDK下的命令汇总_工具_23

12、RegAsm.exe 程序集注册工具
程序集注册工具读取程序集中的元数据,并将所需的项添加到注册表中。注册表允许 COM 客户程序以透明方式创建 .NET Framework 类。类一经注册,任何 COM 客户程序都可以使用它,就好像该类是一个 COM 类。类仅在安装程序集时注册一次。程序集中的类实例直到被实际注册时,才能从 COM 中创建。

.Net Framework SDK下的命令汇总_开发_24

13、CSC.EXE 编译如果程序代码中含有不安全的类型,使用它编译时会失败。

.Net Framework SDK下的命令汇总_休闲_25

14、SVCUtil.exe

它的作用类似WSDL,不同的是它用于WCF,将WCF服务生产代理类。

.Net Framework SDK下的命令汇总_实际应用_26

15、GACUtil.exe

在GAC中安装一个强命名程序集。弱命名程序集是不能被安装到GAC中的。默认情况下,执行该命令的用户必须是Windows 或Administrator下的,其他组下的用户不能使用此命令对程序集进行安装、卸载、安装弱名称程序集时,如下图:

.Net Framework SDK下的命令汇总_休闲_27

使用之前介绍的强名称工具SN生成的密钥对程序集进行签名,然后安装:

.Net Framework SDK下的命令汇总_看书_28

查看程序集:

.Net Framework SDK下的命令汇总_休闲_29

卸载程序集:

.Net Framework SDK下的命令汇总_看书_30

16、MakeCert.exe证书生成工具。

仅用于生成用于测试目的的x.509证书。使用它时,有许多可选项。其中-sk用于指定密钥容器的位置,此位置包含私钥。如果不存在,系统将自动创建一个。-n 用于指定证书主题,此名称必须符合 X.509 标准。最简单的方法是在双引号中指定此名称,并加上前缀 CN=;

.Net Framework SDK下的命令汇总_实际应用_31

17、CertMgr.exe

证书管理工具,管理证书、证书信任列表、证书吊销列表它使用证书的两类存储区:StoreFile和系统存储区。不指定证书存储区类型,它能识别存储区类型并执行适当的操作。

在命令行中查看证书信息:

.Net Framework SDK下的命令汇总_休闲_32

运行时如果不指定任何参数,将启动GUI界面:

.Net Framework SDK下的命令汇总_看书_33

18、SignTool.exe(.Net FrameWork 1.0、1.1版本中为ChkTrust.exe)。

用于对文件进行数字签名,验证文件或时间戳文件的签名。为了检验SignTool对文件签名,首先使用它的Verify选项验证一下文件:

.Net Framework SDK下的命令汇总_休闲_34

对文件签名:

.Net Framework SDK下的命令汇总_开发_35

19、StoreAdm.独立存储工具。

管理独立存储,提供列出用户的存储区和删除它们的选项:

.Net Framework SDK下的命令汇总_开发_36

20、PermView.exe权限查看工具。允许查看程序集的请求权限(仅仅在.Net FrameWork 1.0\1.1中可用)

21、SecUtil

从程序集中提取强名称信息或公钥,并将该信息转换为可合并到代码中的格式。

.Net Framework SDK下的命令汇总_看书_37

.Net FrameWork 4.0中已经不再使用。
22、SetReg.exe(在.Net FrameWork 1.0、1.1以上版本中已使用SignTool)。设置注册表工具
23、Cert2Spc.exe 发行者证书测试工具。

通过一个或多个X.509证书创建发行者证书。仅用于测试目的

.Net Framework SDK下的命令汇总_实际应用_38