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