/platform (Visual Basic)
指定公共语言运行时 (CLR) 的哪个平台版本可以运行输出文件。
/platform:{ x86 | x64 | Itanium | anycpu }
实参
术语 |
定义 |
anycpu |
将程序集编译为可在任意平台上运行。 这是在未指定 /platform 选项时的默认行为。 |
x86 |
将程序集编译为由与 x86 兼容的 32 位 CLR 运行。 |
x64 |
将程序集编译为由支持 AMD64 或 EM64T 指令集的计算机上的 64 位 CLR 运行。 |
Itanium |
将程序集编译为由采用 Itanium 处理器的计算机上的 64 位 CLR 运行。 |
备注
使用 /platform 选项可指定输出文件所指向的处理器的类型。
通常,用 Visual Basic 编写的 .NET Framework 程序集的运行行为均相同,与平台无关。 但在一些情况下,它们在不同平台上的行为有所不同。 这些常见的情况包括:
结构包含根据平台更改大小的成员,如任意指针类型。
指针算法包含常数大小。
平台调用不正确,或者 COM 声明将 Integer 而不是 IntPtr 用于句柄。
将 IntPtr 强制转换为 Integer。
对不存在于任何平台上的组件使用平台调用或 COM 互操作。
如果您事先对代码将运行的体系结构做出判定,则 /platform 选项将会减少一些问题。 尤其是在下列情况下:
如果确定目标为 64 位平台,而应用程序运行在 32 位计算机上,则与不使用此开关所发生的错误相比,在这种情况下错误信息将会更早地产生并更针对问题本身。
如果在该开关上设置了 32 位选项并随后在 64 位计算机上运行应用程序,则该应用程序将在 WOW 子系统中运行,而不是在本机运行。
在 64 位 Windows 操作系统上:
用 /platform:x86 编译的程序集将在 WOW64 下运行的 32 位 CLR 上执行。
用 /platform:anycpu 编译的可执行文件将在 64 位 CLR 上执行。
用 /platform:anycpu 编译的 DLL 将在加载该进程的同一 CLR 上执行。
有关开发在 Windows 64 位操作系统上运行的应用程序的更多信息,请参见 64 位应用程序。
在 Visual Studio 集成开发环境中设置 /nowarn |
|
示例
下面的示例演示如何使用 /platform 来指定应只由使用 Itanium 的 64 位 Windows 操作系统上的 64 位 CLR 运行应用程序。
vbc /platform:Itanium myItanium.vb