VSCT 编译器命令行标志

Visual Studio 命令表 (VSCT) 编译器提供命令行开关,以确保成功编译 .vsct 文件。

命令行参数

若要查看 Visual Studio 命令 窗口中的基本 VSCT 帮助,请导航到 Visual Studio SDK 安装路径\VisualStudioIntegration\Tools\Bin\ 文件夹并键入:

vsct /?

这样会返回:

Microsoft (R) Visual Studio (R) Command Table Compiler Version 3.00.2000

Syntax: vsct <infile> [<outfile>] [-S[symbols file]] [-D<preprocessor-define>]*
[-I<include-path>]* [-L<language>] [-E[C|H|N]:<name>]

  -D    Specify any additional preprocessor defines
  -I    Indicate what additional include paths to send to the preprocessor
  -L    Specify the language to use when selecting strings
  -E    Emit C# objects in the specified namespace for command items,
        followed by [L|F|H|N]:<value>
        F = Name of the file to emit (used if -EL is provided)
        L = Name of a language providing a CodeDOM provider
        N = namespace (required if -EL is provided)
        H = C++ header
  -c    Clean build skipping dependency checks
  -v    Verbose output

注意

字符 -(短划线)和/(正斜杠)均接受表示法来指示命令行参数。

可接受的标志及其含义如下。

开关 说明
-D 指定任何其他定义的符号。
-I 指示解析文件引用时应使用的其他包含路径。
-L 指定 CultureInfo 区域性名称,例如“en-US”。
-E 为命令项发出指定命名空间中的 C# 对象,后跟 [C|H|N]:filenamewhere C = C#, H = C++ header, N = namespace. C# 需要命名空间。
-v 详细输出。

-L 开关指示编译器选择一组字符串以生成与给定 CultureInfo 区域性名称对应的二进制 .cto 文件。 指定的区域性名称应与 .vsct 文件中一个或多个 Strings 元素 的语言属性匹配。 如果 Strings 元素没有 Language 属性,则它继承自包含 的 CommandTable 元素

.vsct 文件可能有多个 Strings 元素,并且每个元素可能具有不同的语言属性。 通过多次运行 VSCT 编译器并更改每个区域性名称的 -L 开关来实现全球化。

如果 -L 开关给出的区域性名称与任何 Strings 元素的语言属性不匹配,编译器将尝试匹配该语言,而不是区域。 例如,如果找不到“en-US”,编译器将改为尝试“en”。 如果失败,它将尝试操作系统的当前区域性。 如果失败,它将编译它找到的第一个 Strings 元素。

-E 开关可用于发出包含命令表使用的符号的 C 样式头文件,或发出包含命令符号对象的 C# 文件。

-D 和 -I 开关具有具有相同名称的 Cl.exe C 预处理器标志的语法。 具有 X=Y 格式的 -D 定义用于在属性中Condition扩展基于 <XML 的已定义>测试。 -I 包含路径用于解析 <Include>、 <Extern> 和 <Bitmap> 文件引用。 有关详细信息,请参阅 VSCT XML 架构参考

VSCT 编译器还可以反编译以前生成的二进制文件。 为此,请为 <文件>提供二进制文件。 如果二进制文件是由 VSCT 编译器生成的,它将具有已嵌入的符号,并将在输出的 Symbols> 节中使用<符号名称生成输出。 如果二进制文件是由 COMPILER 编译器生成的,则输出将包含实际的 GUID 和 ID。 如果当前版本的 Crystal.exe 生成的 *.ctsym 文件与二进制输入文件位于同一文件夹中,则符号将从该文件加载并用于输出。

另请参阅