MSBuild の条件

MSBuild は、Condition 属性が許可されている場所ならどこでも適用できる、特定の条件のセットをサポートしています。 次の表は、その条件を説明したものです。

条件 説明
'stringA' == 'stringB' stringAstringB に等しい場合、true と評価されます。

例:

Condition="'$(CONFIG)'=='DEBUG'"

単純な英数字文字列またはブール値には、単一引用符は必要ありません。 ただし、空の値には単一引用符が必要です。
'stringA' != 'stringB' stringAstringB と等しくない場合、true と評価されます。

例:

Condition="'$(CONFIG)'!='DEBUG'"

単純な英数字文字列またはブール値には、単一引用符は必要ありません。 ただし、空の値には単一引用符が必要です。
<、>、<=、>= オペランドの数値を評価します。 関係の評価が true の場合、true を返します。 オペランドは、10 進数または 16 進数として評価される必要があります。 16 進数は、"0 x" で始まる必要があります。 注: XML では、文字 < および > をエスケープする必要があります。 シンボル < は、< として表されます。 シンボル > は、> として表されます。
Exists('stringA') stringA という名前のファイルまたはフォルダーが存在する場合、true と評価されます。

例:

Condition="!Exists('$(builtdir)')"

単純な英数字文字列またはブール値には、単一引用符は必要ありません。 ただし、空の値には単一引用符が必要です。
HasTrailingSlash('stringA') 指定した文字列の末尾にバックスラッシュ (\) 文字かスラッシュ (/) 文字のいずれかが含まれる場合、true と評価されます。

例:

Condition="!HasTrailingSlash('$(OutputPath)')"

単純な英数字文字列またはブール値には、単一引用符は必要ありません。 ただし、空の値には単一引用符が必要です。
! オペランドが false と評価される場合、true と評価されます。
および 両方のオペランドが true と評価される場合、true と評価します。
または 少なくともオペランドの 1 つが true と評価される場合、true と評価します。
() 内部に含まれる式が true と評価される場合に true と評価されるグループ化機構。
$if$ ( %expression% )、$else$、$endif$ 指定した %expression% が、渡されるカスタム テンプレート パラメーターの文字列の値と一致するかどうかをチェックします。 $if$ 条件が true と評価される場合、そのステートメントが実行されます。それ以外の場合、$else$ 条件がチェックされます。 $else$ 条件が true の場合、そのステートメントが実行されます。それ以外の場合、$endif$ 条件は式の評価を終了します。

使用の例については、「Visual Studio Project/Item Template Parameter Logic (Visual Studio プロジェクト/項目テンプレート パラメーター ロジック)」を参照してください。

関連項目

MSBuild リファレンス
条件構造
チュートリアル: MSBuild プロジェクト ファイルのゼロからの作成