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


-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 (advanced RISC Machine).
anycpu Компилирует сборку для запуска на любой платформе. Приложение будет работать как 32-разрядное приложение в 32-разрядных версиях Windows и в качестве 64-разрядного приложения в 64-разрядных версиях Windows. Этот флаг является значением по умолчанию.
anycpu32bitpreferred Компилирует сборку для запуска на любой платформе. Приложение будет работать как 32-разрядное приложение в 32-разрядных и 64-разрядных версиях Windows. Этот флаг действителен только для исполняемых файлов (.EXE) и требует .NET Framework 4.5.

Замечания

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

Как правило, сборки .NET Framework, написанные в Visual Basic, будут работать одинаково независимо от платформы. Однако существуют некоторые случаи, которые ведут себя по-разному на разных платформах. Ниже приведены распространенные случаи:

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

  • Арифметика указателя, включающая размеры констант.

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

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

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

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

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

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

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

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

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

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

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

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

Установка -platform в интегрированной среде разработки Visual Studio

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

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

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

Пример

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

vbc -platform:x86 myFile.vb  

См. также