65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET 命令行工具

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.04/5 (8投票s)

2007年3月2日

6分钟阅读

viewsIcon

38661

downloadIcon

361

.NET 开发环境中可用的各种命令行工具

引言

这将帮助我们了解如何利用 Microsoft Visual Studio.NET 中提供的命令行工具。

背景

当我最初在 .NET 环境下进行开发时,我经常遇到一些问题,比如在安装和注册程序集时创建强命名密钥对文件,我当时还在想是否可能从 C、C++、VB6 等其他语言访问 .NET 功能,等等。当我找到了这些工具,它们不仅能解决上述任务,还能完成其他一些任务时,我惊呆了,从那时起,我一直在使用这些工具,它们让我的困难任务变得简单。作为一名开发者,我们总是在不断探索,不断挑战任何编程语言的极限。这就是为什么我决定写一篇关于如何利用现有的命令行工具使我们的工作变得简单的文章。

(注意:尽管命令行工具的帮助在线可用,但我决定将其写在单个文档中,以便于在一个地方获取所有需要的信息)

开始吧……。

1) 编译器工具

a. Visual Basic 编译器:(vbc.exe) – 如果有人想编译他的 Visual Basic.NET 代码,他/她需要使用这个工具,该工具提供的各种命令行选项如下。

/out:<file> 指定输出文件名。

/target:exe 创建一个控制台应用程序(默认)。(短形式: /t)

/target:winexe 创建一个 Windows 应用程序。

/target:library 创建一个库程序集。

/target:module 创建一个可以添加到程序集中的模块。

/doc[+|-] 生成 XML 文档文件。

/doc:<file> 将 XML 文档文件生成到 <file>。

还有其他可用的选项。要查看所有可用选项,请在命令提示符下键入以下命令。

C:\>vbc > vbc.txt

这将帮助您将所有命令行参数开关累积到文本中

文件。

b. C# 编译器:(csc.exe):如果有人想编译他的 Visual Basic.NET 代码,他/她需要使用这个工具,该工具提供的各种命令行选项如下。

/out:<file> 指定输出文件名(默认:包含主类或第一个文件的基本名称)

/target:exe 生成控制台可执行文件(默认)(短形式:/t:exe)

/target:winexe 生成 Windows 可执行文件(短形式:/t:winexe)

/target:library 生成库(短形式:/t:library)

/target:module 生成可以添加到另一个程序集的模块(短形式:/t:module)

/delaysign[+|-] 使用强名称密钥的公共部分延迟签名程序集

/doc:<file> 要生成的 XML 文档文件

/keyfile:<file> 指定强名称密钥文件

/keycontainer:<string> 指定强名称密钥容器

/platform:<string> 限制代码可运行的平台:x86、Itanium、x64 或 anycpu。默认值为 anycpu。

还有其他可用的选项。要查看所有可用选项,请在命令提示符下键入以下命令。

C:\>cbc > cbc.txt

这将帮助您将所有命令行参数开关累积到文本中

文件。

2) 创建安装 Windows 服务:(InstallUtil.exe) – 如果您开发了 Windows 服务并希望将其安装在将要部署应用程序的系统上。您绝对需要先正确安装它。要安装 Windows 服务,请在命令提示符下键入以下命令。

C:\InstallUtil <servicename>.exe

在某些时候,您可能还想手动卸载服务(通常在开发过程中),在这种情况下,您可以使用以下命令进行卸载

C:\InstallUtil /u <servicename>.exe

3) 注册程序集到 GAC:(regasm.exe) – 在基于 .NET 的开发中,我们时常开发和部署各种类型的程序集,包括公共程序集和私有程序集。公共程序集是安装在全局程序集缓存 (GAC) 中并可供该系统上安装的其他应用程序使用的程序集。要安装和注册任何程序集(公共),您可以直接将该程序集拖放到程序集缓存中,或使用以下命令行选项

C:\regasm <assembly name>

4) 注册服务:(regsvcs.exe) – 这可用于加载和注册一个程序集,生成并注册,将类型库安装到指定的 COM+ 应用程序中。要执行此操作,请键入以下命令

C:\regsvcs <assemblyfile.dll>

5) 类型库导入器:(TlbImp.exe) - 类型库导入器将 COM 类型库中的类型定义转换为公共语言运行时程序集中的等效定义。Tlbimp.exe 的输出是一个二进制文件(一个程序集),其中包含原始类型库中定义的类型的运行时元数据。使用导入程序集,键入以下命令。

C:\TlbImp tlbfile

此处 tlbfile 是任何 COM 类型库文件。

6) 类型库导出器:(Tlbexp.exe) – 类型库导出器生成描述公共语言运行时中定义的类型的类型库。要生成类型库,请键入以下命令。

C:\Tlbexp <assemblyname>

7) 强名称工具:(sn.exe) – 在基于 .NET 的环境中开发、分发程序集、安装并在客户端系统上注册它非常重要。要使程序集成为公共程序集,它必须安装并正确注册在机器范围的代码缓存中,即全局程序集缓存或简称 GAC。为此,程序集必须使用强名称进行签名。为此目的,我们可以使用强名称工具 (sn.exe)。要在命令行上使用强名称签名程序集,请键入以下命令。

C:\sn –k <keyfilename>.snk

这将生成一个扩展名为 .snk 的密钥对文件

8) 证书创建工具:(makecert.exe) – 证书创建工具仅用于测试目的生成 X.509 证书。它创建一个用于数字签名的公钥和私钥对,并将其存储在证书文件中。此工具还将密钥对与指定的发布者名称相关联,并创建一个 X.509 证书,将用户指定的名称绑定到密钥对的公共部分。要创建测试证书,请在命令行上键入以下命令

C:\makrcert [options] outputcertificatefile

示例证书将以 .CER 扩展名创建

[对于这里提到的所有工具,都有许多可用的命令行开关。可选参数存储在与工具名称相同的文本文件中,并附在本文章中供您参考。或者,您可以在命令行上通过 c:\[toolname] /? 查看各种选项。我只是将控制台输出重定向到文本文件以便于阅读]

[本文未包含的其他工具将在同一文章的下一部分中介绍。]

如果您有任何建议,我将非常乐意倾听。

© . All rights reserved.