Назад | Перейти на главную страницу

Windows Server 2012 R2 Datacenter (64-разрядная версия) не поддерживает 32-разрядную версию?

Я хочу использовать AppVeyor создать приложение для Windows. Компилятор GNAT GPL 2016 (Ada) для Windows x86.

Я получаю следующее сообщение:

Не удалось запустить программу gnat-gpl-2016-x86-windows-bin.exe: указанный исполняемый файл не является допустимым приложением для этой платформы ОС.

Вопросы:


Get-CimInstance Win32_OperatingSystem | FL * распечатывает (сокращенно):

Status                                    : OK
Name                                      : Microsoft Windows Server 2012 R2 Datacenter|C:\windows|\Device\Harddisk0\Partition5
Caption                                   : Microsoft Windows Server 2012 R2 Datacenter
InstallDate                               : 3/9/2016 2:16:51 AM
CreationClassName                         : Win32_OperatingSystem
CSCreationClassName                       : Win32_ComputerSystem
CSName                                    : APPVYR-WIN
LastBootUpTime                            : 10/21/2016 1:10:27 AM
LocalDateTime                             : 10/21/2016 1:11:59 AM
OSType                                    : 18
Version                                   : 6.3.9600
BootDevice                                : \Device\HarddiskVolume3
BuildNumber                               : 9600
BuildType                                 : Multiprocessor Free
DataExecutionPrevention_32BitApplications : True
DataExecutionPrevention_Available         : True
DataExecutionPrevention_Drivers           : True
DataExecutionPrevention_SupportPolicy     : 3
Debug                                     : False
EncryptionLevel                           : 256
OSArchitecture                            : 64-bit
OSLanguage                                : 1033
OSProductSuite                            : 400
RegisteredUser                            : Windows User
SystemDevice                              : \Device\HarddiskVolume5
SystemDirectory                           : C:\windows\system32
SystemDrive                               : C:
WindowsDirectory                          : C:\windows

Этот вопрос был перемещен из StackOverflow в ServerFault.
Windows Server 2012 R2 Datacenter (64-разрядная версия) не поддерживает 32-разрядную версию?

Редактировать:

Это выглядит как DataExecutionPrevention_32BitApplications мешает мне запустить установщик. Как запустить установщик в 32-битном режиме совместимости из PowerShell? У меня нет графического интерфейса для выбора такой опции.

Server 2012 R2 недоступен в 32-битной версии ОС (для всех версий), но они могут запускать 32-битные приложения, как и все другие 64-битные ОС Windows, и WOW64 присутствует, поэтому я не думаю, что это проблема. Разве вы не один из немногих, кто работает на процессоре Itanium?

DataExecutionPrevention_32BitApplications: True означает, что предотвращение выполнения данных включено для 32-битных приложений. DEP - это встроенный в ОС процесс, который проверяет память, чтобы предотвратить запуск вредоносного кода. Известно, что DEP вызывает проблемы со старыми приложениями, поэтому у вас есть возможность отключить его либо для всего, кроме критических систем, либо для определенных приложений.

Windows Server 2012 R2 поддерживает приложение модели x86, но, с другой стороны, необходимая зависимость для вашего .exe, безусловно, не установлена. (например, vcruntime x86 и т. д.)

Я видел ваш комментарий к другому потоку, что .exe вызывается из PowerShell, пожалуйста, используйте консоль PowerShell x86 для такой задачи.

% SystemRoot% \ syswow64 \ WindowsPowerShell \ v1.0 \ powershell.exe