2012-12-27 18 views
5

可能性の重複:
C# if/then directives for debug vs releaseVisual Studioでは、デバッグ版とリリース版の特別なケースを追加する方法は?

私はC#プロジェクトに取り組んでいると私は私がデバッグモードでのデバッガでプログラムを実行していながら、特殊なケースを追加する方法を知りたいです私は、リリース版では通常持っていない特定のリソースにアクセスしています。

ここには何が起こっているのですか、プログラムに組み込まれている管理ツールがあります。これはデバッグのためだけのもので、テストと呼ばれるボタンのようなものです。何が起きているのか私はそのボタンを隠すことを忘れて、私はそれをクライアントにリリースする。私はデバッグモードで動作している間だけそのテストボタンを持っているが、それ以外の時間は望んでいない。

これは、これを行うための簡単な方法があります。これは、私の管理ツール

rpg_Admin.Visible = false; 

をオフにし、私の管理ツールに

rpg_Admin.Visible = true; 

を回しますか?

if Debug Mode 
    rpg_Admin.Visible = true 

または多分それは、Visual Studioで実行している間、それは

rpg_Admin.Visible = true 

だが、私は、Visual Studioで2010

感謝を実行していますそれ自身の

rpg_Admin.Visible = false 

で実行されています。

+0

私の意見では、これは同じ質問ではありません。その類似しているが、正確な欺瞞ではない。 –

答えて

4

を:

#if DEBUG 
    rpg_Admin.Visible = true; 
#else 
    rpg_Admin.Visible = false; 
#endif 

あなたは可能性がありまた、デバッグバージョンでのみ使用されるすべてのコードにSystem.Diagnostics.ConditionalAttribute属性を適用します。これにより、リリースビルドから不要なコードが完全に削除されます。例:

[Conditional("DEBUG")] 
public static void MyDebugOnlyMethod() 
    { 
    } 
+0

これは私が正確に探していたものです!私はそれが容易であることを知らなかった。 –

+0

あなたがそれをやる方法を知るまでは、まったく簡単なことはありません!そのため、スタックオーバーフローはすごく素晴らしいです。 –

1

の#ifdef DEBUG /#endifの中にデバッグコードラップ:そのようないくつかの#if /の#else/#endifのディレクティブを追加し、あなたの例を使用して

#ifdef DEBUG 

// debug only code here 

#endif 
+0

ハム、何らかの理由で#ifdefがうまくいけない、それは私に大量のエラーを与える。これのために特別な場所はありますか?私はInitializeComponent()の直後に呼び出しています。私の形で。 –

+0

コードを貼り付けてください。どこでもifdefを使用できるはずです... –

関連する問題