.NET TIPS 独自のビルド構成により実行コードを切り替えるには?デジタルアドバンテージ 一色 政彦2005/01/21 |
|
|
「TIPS:テスト用コードをデバッグ時にのみ実行するには?」では、テスト用のコードをデバッグ版にのみ含めて、デバッグ時にしか実行されないようにする方法を紹介した。しかしこのようなビルド構成ごとの実行コードの切り替えは、前掲のTIPSのようにデバッグ版のビルド構成だけではなく、独自に作成したビルド構成ごとに行うこともできる。
なお、独自のビルド構成の作成方法については、「TIPS:VS.NETでデバッグ版/リリース版以外のビルド構成を追加するには?」で紹介した。
そこで、本稿ではビルド構成ごとに実行コードを切り替える方法について紹介する。
「独自のビルド構成」に対する「独自の条件付きコンパイル定数」の設定
本稿のサンプル・コードの前提条件として、「TIPS:VS.NETでデバッグ版/リリース版以外のビルド構成を追加するには?」の手順で「Demo Debug」という独自のビルド構成を事前に追加しているものとする。
このビルド構成「Demo Debug」に、まず独自の条件付きコンパイル定数(以下の例では「DEMO」)を追加する。これには、Visual Studio .NETでプロジェクトのプロパティを開き、次の画面のように設定する。
条件付きコンパイル定数の設定(Visual Basic .NET) | |||||||||
Visual Basic .NETで、プロジェクトのプロパティで条件付きコンパイル定数として「DEMO」を追加する。 | |||||||||
|
これで準備は完了だ。以上の設定では、「Demo Debug」のビルド構成を選択した場合に、コンパイル定数としてDEBUG、TRACE、DEMOの3つが定義されることになる。
後は、「TIPS:テスト用コードをデバッグ時にのみ実行するには?」と同じ手順で、Conditional属性(以降、条件属性)、もしくは条件付きコンパイル・ディレクティブ(以降、条件ディレクティブ)のいずれかを使ってコードを記述すればよい(このTIPSの「DEBUG」というコンパイル定数を「DEMO」に置き換えるだけでよい)。
ここでは、条件ディレクティブを使った場合のサンプル・プログラムを示しておくことにしよう。
条件付きコンパイル・ディレクティブ(#ifディレクティブ)を使った方法
条件ディレクティブを使う方法では、#if <条件(この例では「DEMO」)>ディレクティブ〜#endifディレクティブ(C#の場合)/#If <条件(この例では「DEMO」)> Then〜#End If(VB.NETの場合)で、「Demo Debug」のビルド構成のときにのみ実行したいコードを囲えばよい。具体的には次のようなコードになる。
|
|
条件ディレクティブ(#ifディレクティブ)によりデバッグ時にのみ実行されるサンプル・プログラム(C#) | |
太字の部分のコードのようにして、#if <条件(この例では「DEMO」や「DEBUG」)>ディレクティブ〜#endifディレクティブで特定の条件下でのみ実行したいコードを囲う。 |
|
|
条件ディレクティブ(#Ifディレクティブ)によりデバッグ時にのみ実行されるサンプル・プログラム(VB.NET) | |
太字の部分のコードのようにして、#If <条件(この例では「DEMO」や「DEBUG」)> Thenディレクティブ〜#End Ifディレクティブで特定の条件下でのみ実行したいコードを囲う。 |
上記コードでは、「DEMO」と「DEBUG」という2つの条件付きコンパイル定数を入れ子に使って複雑に条件分岐するようにしている。最初にコードを「DEMO」とそうでないもので条件分岐し、次に条件分岐したそれぞれのコードをさらに「DEBUG」とそうでないもので条件分岐している。このように複数の条件付きコンパイル定数を組み合わせて使うこともできる。
カテゴリ:C# 処理対象:デバッグ カテゴリ:Visual Basic .NET 処理対象:デバッグ 使用ライブラリ:ConditionalAttribute属性(System.Diagnostics名前空間) 使用キーワード:#ifディレクティブ 使用キーワード:#Ifディレクティブ 関連TIPS:テスト用コードをデバッグ時にのみ実行するには? 関連TIPS:VS.NETでデバッグ版/リリース版以外のビルド構成を追加するには? |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|