Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Указывает, какая версия платформы среды 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
В обозревателе решений выберите проект, откройте меню "Проект " и нажмите кнопку "Свойства".
На вкладке "Компиляция " установите или снимите флажок "Предпочитать 32-разрядную" или в списке целевого ЦП выберите значение.
Дополнительные сведения см. на странице компиляции конструктора проектов (Visual Basic).
Пример
В следующем примере показано, как использовать параметр компилятора -platform .
vbc -platform:x86 myFile.vb