Para determinar si una DLL (o EXE) es administrada o no, use dumpbin.exe
with the /dependents
switch. Si ve mscoree.dll
in the output, entonces el conjunto es un conjunto administrado.
Por ejemplo, para un archivo DLL administrado que he creado en Visual Studio 2010, me sale el siguiente resultado:
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
se entrega como parte de los Visual Studio Tools. Para ejecutarlo, una forma conveniente de hacerlo es a través del Visual Studio Command Prompt. Por ejemplo, de mi máquina de Windows 7 se ejecuta Visual Studio 2010, encuentro que el Visual Studio Símbolo del sistema en el menú de Inicio de Windows en:
Microsoft Visual Studio 2010 =>Visual Studio Tools =>Visual Studio Símbolo del sistema (2010)
Entonces, dentro del sistema de Visual Studio pronta acaba de entrar:
dumpbin /dependents DLL_OF_INTEREST.DLL
o
dumpbin /dependents EXE_OF_INTEREST.EXE
Como alternativa, puede utilizar la utilidad corflags.exe
que también se incluye con Visual Studio Tools. Ejecutarlo desde el Visual Studio de comandos en un administrado montaje:
corflags UNMANAGED.DLL
..you'll obtener:
corflags : error CF008 : The specified file does not have a valid managed header
...mientras que en un lograron montaje, que obtendrá algo como:
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 1
ILONLY : 1
32BIT : 0
Signed : 0
relacionadas:
Puede solicitar a los creadores de complementos que incluyan un recurso especial. –