C# - connaître le mode de compilation utilisé

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 195 fois - Téléchargée 29 fois

Contenu du snippet

A la suite de l'article posté ici :
- http://blogs.developpeur.org/fabrice69/archive/2006/02/01/17041.aspx

Et sur les commentaires recus, j'ai cherché comment savoir si une DLL (ou un EXE) .NET est compilée en mode Debug ou Release.
Après de nombreuses recherches, je suis tombé sur ce post :
- http://msmvps.com/blogs/bill/archive/2004/06/17/8339.aspx

Qui donne la méthode en VB.NET. J'ai donc adapté cette méthode pour le C#.

Source / Exemple :


using System.IO;
using System.Reflection;
using System.Diagnostics;

.....

/// <summary>
/// Fonction qui vérifie si le fichier chargé est compilé en mode Debug
/// </summary>
/// <param name="CheminFichierAssemblyATester">Chemin d'accès vers le fichier</param>
/// <returns>Vrai ou faux</returns>
private bool TestModeCompile(string CheminFichierAssemblyATester)
{
	bool retour = false;
	Assembly Lassembly = null;

	try
	{
		Lassembly = Assembly.LoadFile(CheminFichierAssemblyATester);
		foreach (object att in  Lassembly.GetCustomAttributes(false))
		{
			if (att.GetType()== typeof(System.Diagnostics.DebuggableAttribute))
			{
				retour = ((System.Diagnostics.DebuggableAttribute)att).IsJITTrackingEnabled;
				break;
			}
		}
	}
	catch
	{
		retour = false;
	}
	finally
	{
		Lassembly = null;
	}
	return retour;
}

.....

Conclusion :


Bon coding.

Romelard Fabrice

A voir également

Ajouter un commentaire Commentaires
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
6
Bon à savoir, je corrige dès que j'ai 2 minutes.
Merci.

Romelard Fabrice
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Avec VS2005 Express ( pas avec csc.exe ) en Release ou Debug cette méthode me renvoie toujours true, avec IsJITTrackingEnabled, les résultats sont cohérents.
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Il me semble qu'il est également nécessaire de tester la propriété IsJITTrackingEnabled, non !?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.