/target (Visual Basic)

指定编译器输出的格式。

/target:{exe | library | module | winexe}

备注

下表总结了 /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 类库或使用 Win32 API 提供用户界面的程序。

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

在要编译为 .exe 文件的源代码文件中只需要一个 Sub Main 过程。 如果代码中有多个包含 Sub Main 过程的类,则可以使用 /main 编译器选项指定包含 Sub Main 过程的类。

如果不指定 /target:module,/target 会将 .NET Framework 程序集清单添加到输出文件中。

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

/target 的缩写形式是 /t。

在 Visual Studio IDE 中设置 /target

  1. 在**“解决方案资源管理器”中选择一个项目。 在“项目”菜单上,单击“属性”**。 有关更多信息,请参见 项目设计器介绍

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

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

示例

下面的代码编译 in.vb,从而创建 in.dll:

vbc /target:library in.vb

请参见

参考

/main

/out (Visual Basic)

/reference (Visual Basic)

/addmodule

/moduleassemblyname

示例编译命令行 (Visual Basic)

概念

程序集和全局程序集缓存(C# 和 Visual Basic)

其他资源

Visual Basic 编译器