Asp.net release build vs debug build

¿Cómo puedo determinar si mi aplicación fue comstackda como “versión” en lugar de “depurar”? Fui a VS 2008 Project Properties> Build y establecí la configuración de Debug a Release pero no noté ningún cambio. Este es un proyecto de ASP.NET.

    HttpContext.IsDebuggingEnabled

    Si quiere saber si el dll fue construido en modo Debug, con los atributos de depuración, entonces su mejor apuesta es la reflexión.

    Tomado de ” Cómo saber si un ensamblado existente es de depuración o liberación “:

    Assembly assembly = Assembly.GetAssembly(GetType()); bool debug = false; foreach (var attribute in assembly.GetCustomAttributes(false)){ if (attribute.GetType() == typeof(System.Diagnostics.DebuggableAttribute)){ if (((System.Diagnostics.DebuggableAttribute)attribute) .IsJITTrackingEnabled){ debug = true; break; } } } 

    Esto obtendrá el ensamblado que está llamando a ese código (en efecto, en sí mismo) y luego configurará booleano de depuración en verdadero si el ensamblado se compiló en modo de depuración; de lo contrario, es falso.

    Esto podría soltarse fácilmente en una aplicación de consola (como en el ejemplo vinculado), y luego pasar en la ruta de la DLL / EXE que desea verificar. Usted cargaría el ensamblaje desde un camino como este:

     Assembly assembly = Assembly.LoadFile(System.IO.Path.GetFullPath(m_DllPath.Text)); 

    Para uno en Web.config la depuración se establecerá en verdadero, sin embargo, también puede establecer esto en una aplicación de lanzamiento.

    Sin embargo, en la depuración define como DEPURAR, por lo que es simple de hacer:

     bool is_debug; #ifdef DEBUG is_debug = true; #else is_debug = false; #endif 

    Debe buscar más que IsJITTrackingEnabled, que es completamente independiente de si el código se comstack o no para optimización y JIT Optimization.

    Además, DebuggableAttribute está presente si comstack en modo Release y elige DebugOutput en cualquier otro que no sea “none”.

    Consulte mis publicaciones: cómo saber si un ensamblado es de depuración o versión y cómo identificar si el archivo DLL es de depuración o creación de versión (en .NET)