-platform (Visual Basic)

指定公共语言运行时(CLR)的平台版本可以运行输出文件。

语法

-platform:{ x86 | x64 | Itanium | arm | anycpu | anycpu32bitpreferred }  

论据

术语 定义
x86 编译要由 32 位 x86 兼容的 CLR 运行的程序集。
x64 编译程序集,以便由支持 AMD64 或 EM64T 指令集的计算机上的 64 位 CLR 运行。
Itanium 编译程序集,使其由具有 Itanium 处理器的计算机上的 64 位 CLR 运行。
arm 编译程序集以在具有 ARM(高级 RISC 计算机)处理器的计算机上运行。
anycpu 编译程序集以在任何平台上运行。 该应用程序将在 32 位版本的 Windows 上运行 32 位应用程序,在 64 位版本的 Windows 上运行为 64 位应用程序。 此标志是默认值。
anycpu32bitpreferred 编译程序集以在任何平台上运行。 该应用程序将在 32 位和 64 位版本的 Windows 上运行为 32 位应用程序。 此标志仅适用于可执行文件(.EXE),并且需要 .NET Framework 4.5。

注解

使用 -platform 此选项可指定输出文件所针对的处理器类型。

通常,无论平台如何,以 Visual Basic 编写的 .NET Framework 程序集都将运行相同的程序集。 但是,在某些情况下在不同平台上的行为不同。 这些常见情况包括:

  • 包含根据平台更改大小的成员的结构,例如任何指针类型。

  • 指针算术包含固定大小。

  • 平台调用错误,或使用句柄的 Integer 而非 IntPtr 的 COM 声明不正确。

  • 强制转换为 IntPtrInteger

  • 使用平台调用或 COM 互作与所有平台上不存在的组件。

如果你知道你已对代码将运行的体系结构做出假设, 则 -platform 选项将缓解一些问题。 具体说来:

  • 如果你决定面向 64 位平台,并且应用程序在 32 位计算机上运行,则错误消息早得多,并且更针对问题,而不是不使用此开关时发生的错误。

  • 如果在选项上设置 x86 标志,应用程序随后在 64 位计算机上运行,则应用程序将在 WOW 子系统中运行,而不是以本机方式运行。

在 64 位 Windows 操作系统上:

  • 使用编译的 -platform:x86 程序集将在 WOW64 下运行的 32 位 CLR 上执行。

  • 使用将在 64 位 CLR 上执行编译 -platform:anycpu 的可执行文件。

  • 使用 DLL 编译的 -platform:anycpu DLL 将在加载到的进程所在的同一 CLR 上执行。

  • 使用编译的 -platform:anycpu32bitpreferred 可执行文件将在 32 位 CLR 上执行。

有关如何开发应用程序以在 64 位版本的 Windows 上运行的详细信息,请参阅 64 位应用程序

在 Visual Studio IDE 中设置 -platform

  1. 解决方案资源管理器中,选择项目,打开 “项目” 菜单,然后单击“ 属性”。

  2. “编译 ”选项卡上,选中或清除 “首选 32 位 ”复选框,或在 “目标 CPU ”列表中选择一个值。

    有关详细信息,请参阅编译页、项目设计器(Visual Basic)。

示例:

以下示例演示如何使用 -platform 编译器选项。

vbc -platform:x86 myFile.vb  

另请参阅