/platform (Visual Basic)

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

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

参数

术语

定义

x86

将程序集编译为由与 x86 兼容的 32 位 CLR 运行。

x64

将程序集编译为由支持 AMD64 或 EM64T 指令集的计算机上的 64 位 CLR 运行。

Itanium

将程序集编译为由采用 Itanium 处理器的计算机上的 64 位 CLR 运行。

arm

编译您的程序集 (高级 RISC 计算机) ARM 处理器的计算机上运行。

anycpu

将程序集编译为可在任意平台上运行。为在 32 位版本的 Windows 32 位应用程序和 64 位应用程序,64 位版本的 Windows 上运行该应用程序。此标志为默认值。

anycpu32bitpreferred

将程序集编译为可在任意平台上运行。一个 32 位应用程序作为 32 位和 64 位版本的 Windows 上运行该应用程序。此标志仅适用于可执行文件,则 (。EXE),并且需要.NET Framework 4.5。

备注

使用 /platform 选项可指定输出文件所指向的处理器的类型。

通常,用 Visual Basic 编写的 .NET Framework 程序集的运行行为均相同,与平台无关。但在一些情况下,它们在不同平台上的行为有所不同。这些常见的情况包括:

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

  • 指针算法包含常量大小。

  • 平台调用不正确,或者 COM 声明将 Integer 而不是 IntPtr 用于句柄。

  • IntPtr 强制转换为 Integer。

  • 对不存在于任何平台上的组件使用平台调用或 COM 互操作。

如果您事先对代码将运行的体系结构做出判定,则 /platform 选项将会减少一些问题。尤其是在下列情况下:

  • 如果确定目标为 64 位平台,而应用程序运行在 32 位计算机上,则与不使用此开关所发生的错误相比,在这种情况下错误信息将会更早地产生并更针对问题本身。

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

在 64 位 Windows 操作系统上:

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

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

  • 用 /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

请参见

参考

/target (Visual Basic)

示例编译命令行 (Visual Basic)

其他资源

Visual Basic 命令行编译器