MSBuild の条件MSBuild Conditions

MSBuildMSBuild は、Condition 属性が許可されている場所ならどこでも適用できる、特定の条件のセットをサポートしています。 supports a specific set of conditions that can be applied wherever a Condition attribute is allowed. 次の表は、その条件を説明したものです。The following table explains those conditions.

条件Condition 説明Description
'stringA' == 'stringB''stringA' == 'stringB' stringAstringB に等しい場合、true と評価されます。Evaluates to true if stringA equals stringB.

例:For example:

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

単純な英数字文字列またはブール値には、単一引用符は必要ありません。Single quotes are not required for simple alphanumeric strings or boolean values. ただし、空の値には単一引用符が必要です。However, single quotes are required for empty values.
'stringA' != 'stringB''stringA' != 'stringB' stringAstringB と等しくない場合、true と評価されます。Evaluates to true if stringA is not equal to stringB.

例:For example:

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

単純な英数字文字列またはブール値には、単一引用符は必要ありません。Single quotes are not required for simple alphanumeric strings or boolean values. ただし、空の値には単一引用符が必要です。However, single quotes are required for empty values.
<、>、<=、>=<, >, <=, >= オペランドの数値を評価します。Evaluates the numeric values of the operands. 関係の評価が true の場合、true を返します。Returns true if the relational evaluation is true. オペランドは、10 進数または 16 進数として評価される必要があります。Operands must evaluate to a decimal or hexadecimal number. 16 進数は、"0 x" で始まる必要があります。Hexadecimal numbers must begin with "0x". 注: XML では、文字 < および > をエスケープする必要があります。Note: In XML, the characters < and > must be escaped. シンボル < は、< として表されます。The symbol < is represented as <. シンボル > は、> として表されます。The symbol > is represented as >.
Exists('stringA')Exists('stringA') stringA という名前のファイルまたはフォルダーが存在する場合、true と評価されます。Evaluates to true if a file or folder with the name stringA exists.

例:For example:

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

単純な英数字文字列またはブール値には、単一引用符は必要ありません。Single quotes are not required for simple alphanumeric strings or boolean values. ただし、空の値には単一引用符が必要です。However, single quotes are required for empty values.
HasTrailingSlash('stringA')HasTrailingSlash('stringA') 指定した文字列の末尾にバックスラッシュ (\) 文字かスラッシュ (/) 文字のいずれかが含まれる場合、true と評価されます。Evaluates to true if the specified string contains either a trailing backward slash (\) or forward slash (/) character.

例:For example:

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

単純な英数字文字列またはブール値には、単一引用符は必要ありません。Single quotes are not required for simple alphanumeric strings or boolean values. ただし、空の値には単一引用符が必要です。However, single quotes are required for empty values.
!! オペランドが false と評価される場合、true と評価されます。Evaluates to true if the operand evaluates to false.
およびAnd 両方のオペランドが true と評価される場合、true と評価します。Evaluates to true if both operands evaluate to true.
またはOr 少なくともオペランドの 1 つが true と評価される場合、true と評価します。Evaluates to true if at least one of the operands evaluates to true.
()() 内部に含まれる式が true と評価される場合に true と評価されるグループ化機構。Grouping mechanism that evaluates to true if expressions contained inside evaluate to true.
$if$ ( %expression% )、$else$、$endif$$if$ ( %expression% ), $else$, $endif$ 指定した %expression% が、渡されるカスタム テンプレート パラメーターの文字列の値と一致するかどうかをチェックします。Checks whether the specified %expression% matches the string value of the passed custom template parameter. $if$ 条件が true と評価される場合、そのステートメントが実行されます。それ以外の場合、$else$ 条件がチェックされます。If the $if$ condition evaluates to true, then its statements are run; otherwise, the $else$ condition is checked. $else$ 条件が true の場合、そのステートメントが実行されます。それ以外の場合、$endif$ 条件は式の評価を終了します。If the $else$ condition is true, then its statements are run; otherwise, the $endif$ condition ends expression evaluation.

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

関連項目See Also

MSBuild リファレンス MSBuild Reference
条件構造 Conditional Constructs
チュートリアル: MSBuild プロジェクト ファイルのゼロからの作成Walkthrough: Creating an MSBuild Project File from Scratch