指定编译器输出的格式。
语法
-target:{exe | library | module | winexe | appcontainerexe | winmdobj}
注解
下表汇总了选项的效果 -target
。
选项 | 行为 |
---|---|
-target:exe |
使编译器创建可执行控制台应用程序。 如果未 -target 指定任何选项,则这是默认选项。 可执行文件是使用 .exe 扩展名创建的。除非使用此选项指定 -out ,否则输出文件名将采用包含 Sub Main 该过程的输入文件的名称。源代码文件中仅需要一个 Sub Main 过程,这些文件编译为 .exe 文件。
-main 使用编译器选项指定包含该过程的Sub Main 类。 |
-target:library |
使编译器创建动态链接库(DLL)。 动态链接库文件是使用 .dll 扩展名创建的。 除非使用此选项指定 -out ,否则输出文件名将采用第一个输入文件的名称。生成 DLL 时,不需要执行过程 Sub Main 。 |
-target:module |
使编译器生成可添加到程序集的模块。 输出文件是使用 .netmodule 扩展名创建的。 .NET 公共语言运行时无法加载没有程序集的文件。 但是,可以使用 当一个模块中的代码引用另一个模块中的内部类型时,必须使用这两个模块合并到程序集清单 -reference 中。-addmodule 选项从模块导入元数据。 |
-target:winexe |
使编译器创建基于 Windows 的可执行应用程序。 可执行文件是使用 .exe 扩展名创建的。 基于 Windows 的应用程序是从 .NET Framework 类库或 Windows API 提供用户界面的。 除非使用此选项指定 -out ,否则输出文件名将采用包含 Sub Main 该过程的输入文件的名称。源代码文件中仅需要一个 Sub Main 过程,这些文件编译为 .exe 文件。 如果代码具有多个具有 Sub Main 过程类,请使用 -main 编译器选项指定包含该过程的 Sub Main 类 |
-target:appcontainerexe |
使编译器创建必须在应用容器中运行的基于 Windows 的可执行应用程序。 此设置旨在用于 Windows 8.x 应用商店应用程序。 appcontainerexe 设置在可移植可执行文件的“特征”字段中设置位。 此位表示应用必须在应用容器中运行。 设置此位时,如果 CreateProcess 方法尝试在应用容器外部启动应用程序,则会发生错误。 除了此位设置之外, -target:appcontainerexe 等效于 -target:winexe。可执行文件是使用 .exe 扩展名创建的。 除非使用 -out 此选项指定其他方法,否则输出文件名将采用包含 Sub Main 该过程的输入文件的名称。源代码文件中仅需要一个 Sub Main 过程,这些文件编译为 .exe 文件。 如果代码包含多个具有 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
在 解决方案资源管理器中选择项目。 在“项目”菜单上,单击“属性” 。
单击 “应用程序 ”选项卡。
修改 “应用程序类型” 框中的值。
示例:
以下代码编译 in.vb
,创建 in.dll
:
vbc -target:library in.vb