Visual Studio .NET 是开发 .NET 应用程序的最流行的方法,.NET 框架提供了非常多的命令工具。此外,.NET Framework SDK 还提供了更多的命令行工具。事实上,像Visual Studio 和SharpDevelop 之类的 IDE 通常也都提供这些工具。下面让我们详细看一下随 .NET Framework 一起安装的这些工具,以及如何在项目中使用它们。(注意:在这篇文章中我使用的是 .NET Framework 1.1 版本。)
使用 .NET Framework
.NET Framework 命令行程序的默认安装目录是:
C:\(base Windows directory)\Microsoft.NET\Framework\(framework version)
在我的计算机上,由于安装的操作系统是 Windows 2000,所以 .NET Framework 1.1 版本安装在 winnt 目录下,所以其路径是:
C:\winnt\Microsoft.NET\Framework\v1.1.4322
这个目录包含无数的 dll,配置文件和可执行文件,等等。在这篇文章中,我将把重点放在可执行文件上。下面是这些程序的一个纲要:
Al.exe:程序集链接器(Assembly Linker),该工具从一个或多个模块或者资源文件生成一个带有一个程序集清单的文件。模块是一个没有程序集清单的微软中间语言文件(MSIL)。所有的 Visual Studio 编译器都生成程序集。然而,如果你有一个或多个模块(没有清单的元数据),你可以利用 Al.exe 工具使用一个独立文件中的清单创建一个程序集。
Aspnet_regiis.exe:这个工具允许你在 IIS 上安装 ASP.NET。此外,它还可以简化同时运行的多个 ASP.NET 版本的使用。它允许你为 ASP.NET 应用程序更新脚本映射以指向与该工具关联的ASP.NET ISAPI 版本。这个工具还可以用来显示所有安装的ASP.NET 版本的状态,注册 ASP.NET 版本以及工具,创建客户端脚本目录,完成其它配置操作。
Aspnet_state.exe:这个工具允许会话状态信息存储在一台计算机上。它以一个服务运行,如果会话状态信息存储在一台远程计算机上,该工具也可以安装到那台远程计算机上。
Caspol.exe:代码访问安全策略(Code Access Security Policy)工具,该工具能够让用户和管理员在机器策略级、用户策略级和企业策略级修改安全策略。你可以使用Caspol.exe 编写一个批处理脚本来配置安全策略。
ConfigWizards.exe:这个工具启动 .NET 向导窗口(Windows Control Panel | Administrative Tools | Microsoft .NET Framework Wizards 1.1)。它提供对以下三个工具的访问:Adjust .NET Security、Trust An Assembly 和Fix An Application。
csc.exe:Visual C# 编译器。/debug 开关进入调试模式。
cvtres.exe:资源对象转换器(资源转换成对象)。这个工具通常用来将一个二进制资源文件转成一个对象文件。本地资源通常以 .rc 文件开始,然后被 rc.exe 编译成一个 .res 文件,然后再由 cvtres.exe 工具转成一个 .obj 文件,最后像其它 .obj 文件一样被链接到你的本地应用程序中。
dw15.exe:这个工具给出在使用 .NET Framework 时你想看到的错误消息。错误消息询问你是否想发送一个错误报告给微软。(很多用户控告这个小程序是微软的间谍软件。)
Gacutil.exe:全局程序集缓存(Global Assembly Cache)工具,该工具用于管理程序集缓存。它可以用来查看全局缓存的内容,添加或删除程序集。要想使用该工具列出全局程序集缓存(GAC)的所有程序集,可以使用/l 开关。(/i 开关安装程序集,/u 开关删除程序集。)
IEExec.exe:这个工具简化使用 URL 启动的应用程序的测试,包括无触点开发 Windows Form 之类的应用程序。工具 IEExec.exe 可以代替 IDE 调试这些应用程序。它只接受 URL 参数(例如,IEExec.exe http://Server/TheApplication.Exe。);它不允许指定区域设置和站点设置。如果你试图指定区域设置和站点设置,就会出现错误。
Ilasm.exe:MSIL汇编程序(Assembler),该工具从 MSIL 程序集生成一个可移植的可执行文件(PE)。你可以运行生成的可执行文件以确定 MSIL 是否生成了你要的东西。
Installutil.exe:安装程序(Installer)工具,该工具允许你在一个指定的程序集中执行安装程序组件来安装和卸载服务器资源。这个工具与System.Configuration.Install 命名空间中的类联合工作。例如,在安装一个 Windows 服务时这个工具会被用到。
jsc.exe:一个 _JSciprt .NET 编译器。/debug 开关进入调试模式。
Migpol.ex:迁移策略(Migration Policy)工具,该工具提供在两个可兼容的 .NET Framework 版本之间迁移策略的能力。
Ngen.exe:原生图像生成器(Native Image Generator),该工具从一个托管程序集创建一个原生图像,并将其安装到位于本地计算机的原生图像缓存上。原生图像缓存是 GAC 的保留区域。一旦你为一个程序集创建了一个原生图像,之后程序集每次运行时运行库(runtime)就会自动使用那个原生图像。
Regasm.exe:程序集注册(Assembly Registration)工具,该工具读取一个程序集中的元数据,将必要的条目添加到注册表中;这样就允许 COM 客户端透明地创建 .NET Framework 类。在 .NET Framework 类被注册之后,任何 COM 客户端就可以使用它,就好像它是一个 COM 类一样。.NET Framework 类只会被注册一次,就是在程序集被安装时注册。在程序集中的 .NET Framework 类被注册之前,它们的实例不能从 COM 创建。
Regsvcs.exe:这个服务安装工具可以用来装载和注册程序集,注册和安装类型库,或者配置添加到一个类的服务。Regsvcs.exe 需要一个由assemblyFile.dll 指定的源程序集文件。这个程序集必须使用强名签名。.NET Framework SDK 中提供了强名工具(Sn.exe)。
vbc.exe:Visual Basic .NET 编译器。/debug 开关进入调试模式。
vbj.exe:Visual J# .NET 编译器。/debug 开关进入调试模式。
这些工具能够进行全部的 .NET 开发。多数这些工具都支持命令行开关(也就是命令行后接一个斜线)。这些开关允许你指定设置选择或者使用工具的其它方面(像编译器的 /debug 选项)。你可以在命令后面输入 /? 或者 /help 获得工具命令行开关选项的完整列表。这样就提供给你使用工具的完整的语法信息。
我通常喜欢使用友好的 Visual Studio .NET 环境,但是在造访一位客户之后,我现在开始欣赏命令行选项了。我到了他们那里安装了更改了的代码,但是我还必须现在场做一些额外的更改。这些更改就需要重新编译代码,但是我的机器没有安装Visual Studio .NET。幸运的是,我能够使用命令行工具完成这些工作。
选择界面
很多开发人员喜欢 Visual Studio .NET 和其它开发工具的图形环境,但是另外一个派别的开发人员则非常喜欢由命令行环境提供的控制权。让人感到欣慰的是,微软提供了这两种开发应用程序的方法,具体选用哪种方法就看你的喜好了。