release-mode

___ answer629813 ___

Direkter Link zu einem IsDebug Tool, zusammen mit den Nutzungshinweisen.

    
___ answer799005 ___

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: Ссылка

    
___ qstnhdr ___ So ermitteln Sie, ob eine .NET-Assembly mit dem TRACE- oder DEBUG-Flag kompiliert wurde ___ answer8435909 ___

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

    
___ answer629723 ___

Es gibt wahrscheinlich keinen generischen Weg. Sie können jedoch nach Referenzen auf %code% und %code% aus dem Namespace %code% suchen. Die Anwesenheit von diesen zeigt an, dass das DEBUG-Flag gesetzt wurde.

Dasselbe gilt für %code% und das TRACE-Flag.

Offensichtlich funktioniert das nicht, wenn der Quellcode keine Typen aus diesen Namespaces verwendet.

    
___ answer629694 ___
%Vor%     
___ qstntxt ___

Gibt es eine Möglichkeit, herauszufinden, ob eine Assembly mit dem Flag TRACE oder DEBUG kompiliert wurde, ohne die Assembly zu ändern?

    
___ tag123assemblies ___ Assemblies sind Sammlungen von kompilierten .Net-Typen und -Ressourcen, die in einer logischen und physischen Einheit gruppiert sind (in Form einer .dll-Datei oder einer .exe-Datei). ___ tag123trace ___ Eine Ablaufverfolgung ist ein Protokoll der Ausführung eines Prozesses oder einer Methode. ___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ answer629805 ___ ___ tag123releaseMode ___ eine IDE- oder Build-Einstellung, die Builds ohne Debug-Objekte anfordert ___
3
Antworten

Wie generieren Sie PDBs für .net-gemanagte Projekte im Freigabemodus?

Ich weiß, PDBs werden für verwaltete Projekte in .NET generiert, indem dem Compiler das Argument / debug übergeben wird. Gibt es eine Möglichkeit, dies in der VS (2005) GUI zu spezifizieren? Die einzige Möglichkeit, um PDBs im Release-Modus...
25.02.2009, 09:58
6
Antworten

So ermitteln Sie, ob eine .NET-Assembly mit dem TRACE- oder DEBUG-Flag kompiliert wurde

Gibt es eine Möglichkeit, herauszufinden, ob eine Assembly mit dem Flag TRACE oder DEBUG kompiliert wurde, ohne die Assembly zu ändern?     
10.03.2009, 11:01