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