/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
在解决方案资源管理器,选择该项目,打开 项目 菜单,然后单击 属性。
有关更多信息,请参见项目设计器介绍。
在编译 选项卡上,选中或清除 更喜欢 32-位 复选框,或在 目标 CPU 列表中,选择一个值。
有关更多信息,请参见 “项目设计器”->“编译”页 (Visual Basic)。
示例
下面的示例说明了如何使用/platform编译器选项。
vbc /platform:x86 myFile.vb