2009-07-29 18 views

Antwort

0

In Visual Studio glaube ich, dass Sie einfach einen Debug-Build erstellen können, aber es enthält zusätzliche Debug-Informationen. Projekteigenschaften (Rechtsklick auf Projekt in der Projektmappe) gibt Ihnen Zugriff auf die Steuerelemente, die die Kompilierung steuern.

Wenn Sie auf der Befehlszeile mit csc.exe bauen, siehe /optimize parameter docs. Wenn Sie nicht angeben/optimieren, sollte die Assembly nicht optimiert werden.

36

in der Befehlszeile (csc) /optimize-

in der IDE-Projekteigenschaften → bauen → "optimize Code"

Für einige JIT-Optimierungen, Sie [MethodImpl(...)]

+0

Wenn Sie nicht angeben/optimieren, erhalten Sie dasselbe Verhalten wie/optimize- –

+9

Verwenden Sie speziell [MethodImpl (MethodImplOptions.NoOptimization)] für Methoden, für die Sie die Optimierung überspringen möchten. Anwendungsfall: In bestimmten Szenarien, in denen ein systemeigener Aufruf einen anderen systemeigenen Aufruf aufruft, generiert der Compiler ungültigen IL-Code, und die Laufzeitumgebung wird eine InvalidProgramException auslösen, wenn Sie versuchen, sie auszuführen. Sie können die Optimierung für das gesamte Programm entweder deaktivieren oder selektiv [MethodImpl (MethodImplOptions.NoOptimization)] für die Methoden verwenden, die die systemeigenen Aufrufe verwenden. Ich musste genau das tun, um dieses Problem in einer aktuellen Anwendung zu lösen, an der ich gerade arbeitete ... –

+1

[MethodImpl (MethodImplOptions.NoOptimization)] funktioniert überhaupt nicht. Ich habe es auf jede einzelne Methode im Call-Stack gelegt und es hat keine Wirkung. – vbullinger

5

Sie verwenden können kann die Optimierungen in Laufzeit unter Verwendung einer INI-Datei deaktivieren: http://msdn.microsoft.com/en-us/library/9dd8z24x.aspx

Geben Sie den folgenden Text in die .ini [zum Beispiel Explorer.i ni]

[.NET Framework Debugging Control] 
GenerateTrackingInfo=1 
AllowOptimize=0 
1

bevor Sie die Einstellungen des Projekts ändern, die ihren Weg zur Produktion finden könnte sicherstellen, dass Ihre Lösungskonfiguration für Debug festgelegt ist und nicht loslassen.

hatte ich das gleiche Problem und dann sah ich, dass sie eingestellt wurde versehentlich auf Release ...

enter image description here

4

Set Konfigurationen für alle Konfigurationen

Set Optimierte Code Checkbox nicht markiert

enter image description here

Verwandte Themen