CorFlags говорит, что моя .NET-программа работает как 64-битная, а DumpBin - 32-битная

Я создал проект и скомпилировал его какAny CPU, на х64-винде. Поскольку у меня есть проблемы со ссылкой на эту сборку из моего кода, я проверил среду выполнения и target-plattform:

Как вы можете видеть, целевой платформой является x64 при работе на x64-OS (как у меня). Я проверилDumpBin также:

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
             14C machine (x86)
               3 number of sections
        57A49000 time date stamp Fri Aug 05 15:09:20 2016
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
             102 characteristics
                   Executable
                   32 bit word machine

Однако когда я бегуCorFlags это дает мне x64 как платформу для этой сборки:

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 9
ILONLY    : 1
32BIT     : 0
Signed    : 1

Насколько я понимаю, когда я выбралAny CPU в качестве целевой платформы ОС выберет способ выполнения сборки. В 64-битной системе он будет работать в 64-битной, в 32-битной ОС как 32-битной соответственно.

Итак, мой вопрос: что я за версияна самом деле ориентируетесь? 32 или 64 бит?

Ответы на вопрос(1)

Ваш ответ на вопрос