2009-03-12 9 views
5

¿Cómo puedo estar seguro de que mi servidor de producción usa los archivos DLL de versión de compilación? ¿Hay alguna manera de encontrar esa información dentro de dll?¿Cómo puedo saber que un dll no es una compilación de depuración?


Duplicado de:

+0

El "duplicado" es correcto pero las torres no se ajustaban a mis necesidades. Es un servidor de producción y no tengo acceso a la instalación ni de aplicaciones propias ni de terceros. –

Respuesta

11

Si es aC# DLL, puede utilizar ildasm (Archivos de programa \ Microsoft SDKs \ Windows \ v6.0A \ bin \ ildasm.exe) para descubrir esta información.

1) DLL Drag en ILDASM

2) Dbl-Click en el manifiesto

3) Busque:

// ejemplo .custom void [mscorlib] System.Diagnostics.DebuggableAttribute: : .ctor (valuetype [mscorlib] System.Diagnostics.DebuggableAttribute/DebuggingModes) = (01 nn nn nn nn nn nn nn)

4) Para DLL de depuración será (01 00 07 01 00 00 00 00) y para el lanzamiento (01 00 02 00 00 00 00 00) o (01 00 03 00 00 00 00)

¡Avíseme si necesita más información! Por cierto, esta es obviamente la solución no programática.

+0

Es la solución no programática que estaba buscando :) El único problema es que ildasm.exe no es una instalación "estándar" para un servidor de producción. –

+0

¡Sí, no hay nada que haga más feliz a su sistema que agregar algunas utilidades en el servidor de producción! :-) Buena suerte –

2

En sus AssemlyInfo.cs se pueden incluir los siguientes:

#if DEBUG 
[assembly: AssemblyDescription("Your description - Debug")] 
#else 
[assembly: AssemblyDescription("Your description")] 
#endif 

Esto hará que sea fácil de ver, cuando se utiliza la estructura en diálogo de propiedades en el Explorador de archivos.

+0

Lamentablemente no tengo proyecto disponible para compilar de nuevo :( –

Cuestiones relacionadas