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


/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. В обозревателе решений выберите проект, откройте меню Проект и выберите Свойства.

    Для получения дополнительной информации см. Introduction to the Project Designer.

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

    Для получения дополнительной информации см. Страница "Компиляция" в конструкторе проектов (Visual Basic).

Пример

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

vbc /platform:x86 myFile.vb

См. также

Ссылки

/target (Visual Basic)

Примеры командных строк компиляции (Visual Basic)

Другие ресурсы

Компилятор Visual Basic с интерфейсом командной строки