Der einzige beste Weg ist, die kompilierten Assemblies selbst zu überprüfen. Es gibt dieses sehr nützliche Tool namens ".NET Assembly Information", das hier von Rotem Bloom gefunden wurde. Nachdem Sie dies installiert haben, werden die zugehörigen .dll-Dateien mit geöffnet. Nach der Installation können Sie einfach auf das Assembly doppelklicken, um es zu öffnen, und es werden Ihnen die Assemblierungsdetails angezeigt, wie sie im ScreenShop unten angezeigt werden. Dort können Sie erkennen, ob es debuggen ist kompiliert oder nicht.
Alttext http://ruchitsuatrati.net/myfiles/asm_info.jpg
alt text http://ruchitsu rati.net/myfiles/release_assembly.PNG
LinkText: Ссылка
Programmgesteuertes Erkennen, ob eine Assembly im Debug- oder Release-Modus kompiliert wurde von Scott Hanselman.
>Direkter Link zu einem IsDebug Tool, zusammen mit den Nutzungshinweisen.
Es gibt wahrscheinlich keinen generischen Weg. Sie können jedoch nach Referenzen auf Assert
und Debug
aus dem Namespace System.Diagnostics
suchen. Die Anwesenheit von diesen zeigt an, dass das DEBUG-Flag gesetzt wurde.
Dasselbe gilt für Trace
und das TRACE-Flag.
Offensichtlich funktioniert das nicht, wenn der Quellcode keine Typen aus diesen Namespaces verwendet.
Die oben erwähnte "IsDebug" -App hat tatsächlich einen Fehler darin, wo sie nicht über die korrekten DubuggableAttributes reflektiert. Es nimmt fälschlicherweise an, dass die Assembly, wenn das DebuggableAttribute vorhanden ist, nicht JIT Optimized ist. Ich habe eine korrekte Implementierung in meinem Blog zur Verfügung gestellt:
Wie kann ich sagen, ob? Eine Assembly ist Debug oder Release
Tags und Links .net trace assemblies release-mode