2009-03-10 12 views
8

アセンブリを変更せずにTRACEまたはDEBUGフラグが設定されたアセンブリがコンパイルされているかどうかを調べる方法はありますか?.NETアセンブリがTRACEまたはDEBUGフラグでコンパイルされているかどうかを調べる方法

+0

:私はで私のブログに正しい実装を提供してきましたか? stackoverflowの中 – StingyJack

+0

similars質問、一つの質問、および多くの、多くの異なる答え: http://stackoverflow.com/questions/654450/programatically-detecting-release-debug-mode-net ます。http:// stackoverflowの。 com/questions/798971/how-to-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

答えて

2
static bool IsDebug(){ 
bool rv = false; 
#if DEBUG 
rv = true; 
#endif 
return rv; 
} 
+0

まあありがとう、私は探していますrアセンブリを変更することなく見つけ出す方法。私は、既にコンパイルされたアセンブリを、いくつかのコマンドラインツールを使用して、好ましくは実行したいと考えています。 – Ralf

1

おそらく一般的な方法はありません。ただし、とDebugへの参照は、System.Diagnostics名前空間から検索できます。それらの存在はDEBUGフラグがセットされたことを示します。

TraceとTRACEフラグについても同様です。

明らかに、ソースコードがこれらの名前空間の型を使用しない場合、これは機能しません。

3

IsDebugツールへの直接リンクと、使用方法について説明しています。

5

唯一の最良の方法は、コンパイルされたアセンブリ自体をチェックすることです。この非常に便利なツール、 '.NETアセンブリ情報'はRotem Bloomのhereです。これをインストールすると、それ自身で開くように.dllファイルを関連付けます。インストール後、アセンブリをダブルクリックするだけで開くことができます。アセンブリを開くと、以下のスクリーンショットに表示されるアセンブリの詳細が表示されます。そこにデバッグされているかどうかを確認することができます がコンパイルされているかどうか。

alt text http://ruchitsurati.net/myfiles/asm_info.jpg

alt text http://ruchitsurati.net/myfiles/release_assembly.PNG

LinkText:http://www.codeplex.com/AssemblyInformation

0

それが正しいDubuggableAttributesに反映されない場合、上記の "IsDebug" アプリは、実際にそれにバグがあります。 DebuggableAttributeが存在する場合、アセンブリはJIT Optimizedではないと誤って想定しています。またはアセンブリにコードを追加することなく、

How to Tell if an Assembly is Debug or Release

関連する問題