Чтобы определить, является ли DLL (или EXE) управляемой или неуправляемой, используйте dumpbin.exe
с переключателем /dependents
. Если вы видите mscoree.dll
в выводе , то сборка является управляемой сборкой.
Например, для управляемой DLL, которую я создал в Visual Studio 2010, я получаю следующий вывод:
Dump of file <MANAGED_DLL>.dll
File Type: DLL
Image has the following dependencies:
mscoree.dll
Summary
2000 .reloc
2000 .rsrc
2000 .sdata
12000 .text
dumpbin.exe
поставляется как часть Visual Studio Tools . Чтобы запустить его, удобно использовать командную строку Visual Studio . Например, на моем компьютере с Windows 7 под управлением Visual Studio 2010 я нахожу командную строку Visual Studio в меню Пуск Windows по адресу:
Microsoft Visual Studio 2010 => Инструменты Visual Studio => Командная строка Visual Studio (2010) )
Затем в командной строке Visual Studio просто введите:
dumpbin /dependents DLL_OF_INTEREST.DLL
или
dumpbin /dependents EXE_OF_INTEREST.EXE
В качестве альтернативы вы можете использовать утилиту corflags.exe
, которая также включена в Visual Studio Tools. Запуск из командной строки Visual Studio на неуправляемой сборке :
corflags UNMANAGED.DLL
.. вы получите:
corflags : error CF008 : The specified file does not have a valid managed header
... тогда как на управляемой сборке вы получите что-то вроде:
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 1
ILONLY : 1
32BIT : 0
Signed : 0
Связанный: