CorFlags diz que meu programa .NET é executado como 64 bits, enquanto DumpBin significa que é 32 bits
Criei um projeto e o compilei comoAny CPU
. em x64-Windows. Como tenho problemas para referenciar esse assembly do meu código, verifiquei o tempo de execução e a plataforma de destino:
Como você pode ver, a plataforma de destino é x64 ao executar em um x64-OS (como o meu). eu chequeiDumpBin
Além disso:
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
No entanto, quando eu corroCorFlags
está me dando x64 como plataforma para essa montagem:
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 9
ILONLY : 1
32BIT : 0
Signed : 1
Tanto quanto eu entendo quando eu escolhiAny CPU
como plataforma de destino, o sistema operacional escolherá como executar a montagem. Em um sistema de 64 bits, ele será executado em 64 bits, no SO de 32 bits como 32 bits, respectivamente.
Então, minha pergunta é: qual versão sou euna realidade segmentação? 32 ou 64 bits?