C'è un modo per scoprire se un assembly è stato compilato con il flag TRACE o DEBUG impostato senza modificare l'assembly?Come scoprire se un assembly .NET è stato compilato con il flag TRACE o DEBUG
risposta
static bool IsDebug(){
bool rv = false;
#if DEBUG
rv = true;
#endif
return rv;
}
Bene, grazie, ma sto cercando un modo per scoprirlo senza modificare l'assemblaggio. Voglio istpect un assembly già compilato preferibilmente con alcuni strumenti da riga di comando. – Ralf
Probabilmente non esiste un modo generico. Tuttavia, è possibile cercare i riferimenti a Assert
e Debug
dallo spazio dei nomi System.Diagnostics
. La presenza di quelli indicherà che il flag DEBUG è stato impostato.
Lo stesso vale per Trace
e il flag TRACE.
Ovviamente questo non funzionerà se il codice sorgente non utilizza tipi da questi spazi dei nomi.
Collegamento diretto a uno strumento IsDebug, insieme alle istruzioni per l'uso.
L'unico modo migliore è controllare gli assembly compilati. C'è questo strumento molto utile chiamato "Informazioni di assemblaggio .NET" trovato here da Rotem Bloom. Dopo averlo installato, asociates .dll file da aprire con se stesso. Dopo l'installazione, è sufficiente fare doppio clic sull'assieme per aprirlo e visualizzare i dettagli dell'assieme come visualizzato nello screenshot sottostante. Qui puoi identificare se si tratta del debug compilato o meno.
alt text http://ruchitsurati.net/myfiles/asm_info.jpg
alt text http://ruchitsurati.net/myfiles/release_assembly.PNG
Il "IsDebug" app di cui sopra, ha in realtà un bug in esso dove non riflette sulle DubuggableAttributes corrette. Presuppone erroneamente che se è presente il DebuggableAttribute, l'assembly non è JIT ottimizzato. Ho fornito una corretta applicazione sul mio blog all'indirizzo:
- 1. Come sapere se un assembly .NET è stato compilato come x86, x64 o qualsiasi CPU
- 2. Come verificare se un assembly è stato creato utilizzando la configurazione di debug o release?
- 3. È possibile eseguire il debug di un assembly compilato?
- 4. C'è un modo per dire se un assembly C# è stato compilato con il parametro di ottimizzazione?
- 5. Come identificare se Swift è stato compilato con Ottimizzazione
- 6. Come verificare se il programma è stato compilato con i simboli di debug?
- 7. verifica se un file binario è stato compilato con "-static"
- 8. Determina se il file .class è stato compilato con le informazioni di debug?
- 9. Come rilevare se un programma è stato compilato usando -threaded?
- 10. Come scoprire se un file è stato modificato?
- 11. Come dire se chiamare assembly è in modalità DEBUG dal lib compilato di riferimento
- 12. Qualsiasi modo per determinare quando un programma .net è stato compilato/compilato
- 13. Come sapere se un assembly .NET è dinamico?
- 14. Come posso dire, con qualcosa come objdump, se un file oggetto è stato compilato con -fPIC?
- 15. È possibile creare un metodo Debug-only in .NET?
- 16. Come eseguire il debug di un programma compilato con 'make'?
- 17. Posso scoprire se il programma java è stato avviato utilizzando java o javaw
- 18. Come scoprire che il mio sito è stato raschiato?
- 19. Come scoprire come è stato avviato il processo
- 20. Come determinare se il file dll è stato compilato come x64 o x86 bit utilizzando Delphi o Lazarus
- 21. Come registrare un assembly .NET come COM?
- 22. C'è un modo per dire dalla JVM se un particolare metodo è stato compilato con JIT?
- 23. Come determinare se l'assemblaggio è stato annullato?
- 24. Scoprire dove è stato reindirizzato il ricciolo
- 25. Come scoprire perché un barattolo è stato incluso da Maven?
- 26. .NET const che influisce sulla dimensione del assembly compilato
- 27. API Java per scoprire la versione JDK per cui è stato compilato un file di classe?
- 28. Come posso rilevare se il mio assembly .NET è in esecuzione da un sito Web o da un computer desktop?
- 29. è possibile scoprire se un socket rubino è in stato ESTABLISHED o CLOSE_WAIT senza effettivamente inviare o leggere dati?
- 30. Come scoprire se un file batch è stato aperto con doppio clic o tramite riga di comando
Con o senza l'aggiunta di codice al montaggio? – StingyJack
similar a domande in StackOverflow, una domanda, e molte, molte risposte diverse: http://stackoverflow.com/questions/654450/programatically-detecting-release-debug-mode-net http: // StackOverflow. it/questions/798971/how-to-idenfiy-if-the-dll-is-debug-or-release-build-in-net http://stackoverflow.com/questions/194616/how-to-tell -if-net-app-was-compiled-in-debug-or-release-mode http://stackoverflow.com/questions/50900/best-way-to-detect-a-release-build-from- a-debug-build-net http://stackoverflow.com/questions/890459/asp-net-release-build-vs-debug-build – Kiquenet