Поделиться через


-platform (Visual Basic)

Указывает, на какой версии платформы среды CLR может запускаться выходной файл.

Синтаксис

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

Аргументы

Термин Определение
x86 Компилирует сбору для запуска в 32-разрядной среде CLR с архитектурой x86.
x64 Компилирует сбору для запуска в 64-разрядной среде CLR на компьютере, поддерживающем набор инструкций AMD64 или EM64T.
Itanium Компилирует сбору для запуска в 64-разрядной среде CLR на компьютере с процессором Itanium.
arm Компилирует сбору для запуска на компьютере с процессором ARM.
anycpu Компилирует сбору для запуска на любой платформе. Приложение будет выполняться как 32-разрядное приложение в 32-разрядных версиях Windows и как 64-разрядное приложение в 64-разрядных версиях Windows. Этот флаг — значение по умолчанию.
anycpu32bitpreferred Компилирует сбору для запуска на любой платформе. Приложение будет выполняться как 32-разрядное приложение в 32-разрядных и 64-разрядных версиях Windows. Этот флаг действителен только для исполняемых файлов (с расширением EXE). Для него требуется платформа .NET Framework 4.5.

Замечания

Используйте параметр -platform, чтобы указать процессор назначения для выходного файла.

В целом, сборки .NET Framework, написанные на Visual Basic, будут работать одинаково вне зависимости от платформы. Тем не менее, в некоторых случаях поведение программ на разных платформах может различаться. Вот эти случаи:

  • Структуры, содержащие члены, размер которых изменяется в зависимости от платформы, например, любые типы указателей.

  • Арифметика указателя, содержащая постоянные размеры.

  • Неверный вызов платформ или объявления СОМ, использующие дескрипторы Integer вместо IntPtr.

  • Приведение IntPtr к Integer.

  • Использование вызов платформ или взаимодействия СОМ с компонентами, существующими не на всех платформах.

Параметр -platform позволит устранить некоторые проблемы, если известна архитектура, в которой будет выполняться ваш код. В частности:

  • Если целевой является 64-разрядная платформа, а приложение запущено на 32-разрядном компьютере, сообщение об ошибке появится гораздо раньше и будет более точным, чем сообщение об ошибке, которое появится без этого параметра.

  • Если задать флаг x86 для параметра, а потом запустить приложение на 64-разрядном компьютере, приложение будет запущено в подсистеме WOW, а не непосредственно.

В 64-разрядной ОС Windows:

  • Сборки, скомпилированные с параметром -platform:x86, будут выполняться в 32-разрядной среде CLR с WOW64.

  • Исполняемые файлы, скомпилированные с параметром -platform:anycpu, будут выполняться в 64-разрядной среде CLR.

  • Библиотеки DLL, скомпилированные с параметром -platform:anycpu, будут выполняться в тоже де среде CLR, что и процесс, загрузивший эти библиотеки.

  • Исполняемые файлы, скомпилированные с параметром -platform:anycpu32bitpreferred, будут выполняться в 32-разрядной среде CLR.

Дополнительные сведения о разработке приложений для 64-разрядных версий Windows см. в разделе 64-разрядные приложения.

Как задать параметр -platform в интегрированной среде разработки Visual Studio

  1. В обозревателе решений выберите проект, откройте меню Проект и выберите пункт Свойства.

  2. На вкладке Компиляция установите или снимите флажок Предпочитать 32-разрядн. или выберите значение в списке Целевой ЦП.

    Дополнительные сведения см. в разделе Страница приложения в конструкторе проектов (Visual Basic).

Пример

В следующем примере показано использование параметра компилятора -platform.

vbc -platform:x86 myFile.vb  

См. также