-target (Visual Basic)

指定编译器输出的格式。

语法

-target:{exe | library | module | winexe | appcontainerexe | winmdobj}

备注

下表概括了 -target 选项的效果。

选项 行为
-target:exe 使编译器创建可执行控制台应用程序。

这是未指定任何 -target 选项时的默认选项。 将使用 .exe 扩展名创建可执行文件。

除非使用 -out 选项进行指定,否则输出文件名采用包含 Sub Main 过程的输入文件的名称。

编译为 .exe 文件的源代码文件中只需要一个 Sub Main 过程。 使用 -main 编译器选项可指定包含 Sub Main 过程的类。
-target:library 使编译器创建动态链接库 (DLL)。

将使用 .dll 扩展名创建动态链接库文件。

除非使用 -out 选项指定,否则输出文件的名称采用第一个输入文件的名称。

生成 DLL 时,不需要 Sub Main 过程。
-target:module 使编译器生成可添加到程序集的模块。

将使用扩展名 .netmodule 创建输出文件。

.NET 公共语言运行时无法加载不包含程序集的文件。 但是,可以使用 -reference 将此类文件合并到程序集的程序集清单中。

如果一个模块中的代码引用另一模块中的内部类型,则两个模块必须使用 -reference 合并到一个程序集清单中。

-addmodule 选项从模块导入元数据。
-target:winexe 使编译器创建基于 Windows 的可执行应用程序。

将使用 .exe 扩展名创建可执行文件。 基于 Windows 的应用程序从 .NET Framework 类库或使用 Windows API 提供用户界面。

除非使用 -out 选项进行指定,否则输出文件名采用包含 Sub Main 过程的输入文件的名称。

编译为 .exe 文件的源代码文件中只需要一个 Sub Main 过程。 如果代码具有多个附带 Sub Main 过程的类,请使用 -main 编译器选项指定包含 Sub Main 过程的类
-target:appcontainerexe 使编译器创建必须在应用容器中运行的基于 Windows 的可执行应用程序。 此设置设计为用于 Windows 8.x 应用商店应用程序。

appcontainerexe 设置在可移植可执行文件的“特征”字段中设置一个位。 此位只是应用必须在应用容器中运行。 设置了该位时,如果 CreateProcess 方法尝试在应用容器外启动应用程序,则会发生错误。 除了此位设置外,-target:appcontainerexe 等效于 -target:winexe 。

将使用 .exe 扩展名创建可执行文件。

除非使用 -out 选项进行指定,否则输出文件名采用包含 Sub Main 过程的输入文件的名称。

编译为 .exe 文件的源代码文件中只需要一个 Sub Main 过程。 如果代码包含多个附带 Sub Main 过程的类,请使用 -main 编译器选项指定包含 Sub Main 过程的类
-target:winmdobj 使编译器创建可转换为 Windows 运行时二进制 (.winmd) 文件的中间文件。 除了托管语言程序外,JavaScript 和 C++ 程序也可以使用该 .winmd 文件。

将使用扩展名 .winmdobj 创建中间文件。

除非使用 -out 选项进行指定,否则输出文件名采用第一个输入文件的名称。 Sub Main 过程不是必需的。

.winmdobj 文件设计为用作 WinMDExp 导出工具的输入,以生成 Windows 元数据 (WinMD) 文件。 WinMD 文件具有 .winmd 扩展名,同时包含原始库中的代码以及 JavaScript、C++ 和 Windows 运行时使用的 WinMD 定义。

除非指定 -target:module,否则 -target 会使 .NET Framework 程序集清单添加到输出文件。

每个 Vbc.exe 实例最多生成一个输出文件。 如果多次指定编译器选项(如 -out-target),则编译器处理的最后一个选项将生效。 有关编译中所有文件的信息会添加到清单中。 除用 -target:module 创建的文件之外,所有输出文件都包含清单中的程序集元数据。 使用 Ildasm.exe(IL 反汇编程序)可查看输出文件中的元数据。

-target 的缩写形式是 -t

若要在 Visual Studio IDE 中设置 -target

  1. “解决方案资源管理器” 中选择一个项目。 在“项目”菜单上,单击“属性” 。

  2. 单击“应用程序” 选项卡。

  3. 修改“应用程序类型” 框中的值。

示例

以下代码编译 in.vb,从而创建 in.dll

vbc -target:library in.vb

请参阅