-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 |
将程序集编译成可在配有高级 RISC 计算机 (ARM) 处理器的计算机上运行。 |
anycpu |
将程序集编译成可在任意平台上运行。 应用程序将作为 32 位应用程序在 Windows 的 32 位版本上运行,作为 64 位应用程序在 Windows 的 64 位版本上运行。 此标志为默认值。 |
anycpu32bitpreferred |
将程序集编译成可在任意平台上运行。 应用程序将作为 32 位 应用程序在 Windows 的 32 位版本和 64 位版本上运行。 此标志仅对可执行文件 (.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 上执行。用
-platform:anycpu
编译的可执行文件将在 64 位 CLR 上执行。用
-platform:anycpu
编译的 DLL 将在加载它的进程所在的同一 CLR 上执行。用
-platform:anycpu32bitpreferred
编译的可执行文件将在 32 位 CLR 上执行。
有关如何开发要在 Windows 的 64 位版本上运行的应用程序的详细信息,请参阅 64 位应用程序。
若要在 Visual Studio IDE 中设置 -platform
在“解决方案资源管理器”中,选择项目,打开“项目”菜单,然后单击“属性” 。
在“编译”选项卡上,选择或清除“首选 32 位”复选框,或者在“目标 CPU”列表中,选择一个值 。
有关详细信息,请参阅编译页 (Visual Basic)。
示例
下例阐释使用 -platform
编译器选项的方式。
vbc -platform:x86 myFile.vb