指定公共语言运行时(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 声明不正确。强制转换为 IntPtr
Integer
。使用平台调用或 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
在 解决方案资源管理器中,选择项目,打开 “项目” 菜单,然后单击“ 属性”。
在 “编译 ”选项卡上,选中或清除 “首选 32 位 ”复选框,或在 “目标 CPU ”列表中选择一个值。
有关详细信息,请参阅编译页、项目设计器(Visual Basic)。
示例:
以下示例演示如何使用 -platform
编译器选项。
vbc -platform:x86 myFile.vb