2011-04-19 58 views
8

en AssemblyInfo.cs archivo que tengo subection siguiente:¿Dónde encontrar la información de configuración del conjunto?

#if DEBUG 
[assembly: AssemblyConfiguration("Debug")] 
#else 
[assembly: AssemblyConfiguration("Release")] 
#endif 

Cuando esta información se puede ver después del montaje se construye? Puesto que no hay nada de eso en los detalles del archivo:

enter image description here

en otra cosa puede ser encontrado?

Saludos

Respuesta

1

La hoja de propiedades del Explorador de Windows tira esa información desde el Win32 VERSIONINFO recursos. Una serie de atributos de ensamblado puede ser mapped to win32 resource fields (y se establecerá por la acumulación), pero puede ser que el atributo AssemblyConfiguration no es uno de ellos.

Si desea buscar en todo el montaje atributos, incluyendo aquellos que no establece campos de recursos Win32, .NET Reflector es una opción.

3

Puede usar ILDASM.exe para ver el ensamblado compilado. Consulte http://msdn.microsoft.com/en-us/library/ceats605.aspx para obtener información sobre el uso de ILDASM.exe.

O puede utilizar la reflexión para mirarlo a través de código, tal como System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes()

11

Puede utilizar la reflexión para obtener esta información. Creo que sería algo como lo siguiente.

Assembly assembly = Assembly.GetExecutingAssembly(); 
object[] attributes = assembly.GetCustomAttributes(true); 
var config = attributes.OfType<AssemblyConfigurationAttribute>().FirstOrDefault(); 
if (config != null) { 
     Debug.WriteLine(config.Configuration); 
} 

¿Aún piensa en esto? ¿Es este su intento?

How to check if an assembly was built using Debug or Release configuration?

La entrada de blog vinculado desde la respuesta de arriba muestra una mejor manera de determinar si el montaje es depurable: http://stevesmithblog.com/blog/determine-whether-an-assembly-was-compiled-in-debug-mode/

Una respuesta indica que si se utiliza el atributo AssemblyDescription para incluir condicionalmente LANZAMIENTO/Depurar en el texto puede tener esa información en el Explorador de Windows.

+1

La tercera línea Me gustaría reemplazar con 'var config = attributes.OfType () FirstOrDefault();.'. Entonces no necesitas el yeso y parece un poco más limpio. –

Cuestiones relacionadas