Я создал консольное приложение .NET Core 3.1 AnyCpu
с помощью Visual Studio 2019 с последними исправлениями. Единственный код, который он содержит, - это шаблон Console.WriteLine("Hello World!")
, с помощью которого он был создан. Я компилирую это, и он отлично работает на моем компьютере с Windows 10 x64.
Я копирую папку Debug
в свой 32-разрядный Windows 7 и пытаюсь запустить консольное приложение. Получаю следующее сообщение. (Среда выполнения .Net Core 3.1 установлена в Windows 7).
Версия этого файла несовместима с используемой вами версией Windows. Проверьте системную информацию вашего компьютера, чтобы узнать, нужна ли вам версия программы x86 (32-разрядная) или x64 (64-разрядная), а затем обратитесь к издателю программного обеспечения.
Однако, если я компилирую консольное приложение с использованием x86, оно отлично работает в Windows 7. В VS2019 и .NET Core 3 / 3.1 AnyCpu
изменилось? Я ожидал, что код, скомпилированный для AnyCpu
, должен нормально работать в 32- и 64-битных версиях.
x86
, приведет к созданию файла PE32 +.exe
, а файл PE32 +.exe
будет запущен как 64-битный процесс. Не совсем уверен, как это связано, но я обнаружил, что ориентация наwin-x86
среду выполнения при публикации дает x86.exe
даже в 64-битной Windows 10. - person Lance U. Matthews   schedule 08.07.2020