0
私は財産を持っている場合はMSBuildの - どのようにプロパティに文字列の存在を確認するために
<PropertyGroup>
<MyProp>abd;efg;hij;klm</MyProp>
</PropertyGroup>
にはどうすればklm
の存在を確認するために$(MyProp)
を解析していますか?
私は財産を持っている場合はMSBuildの - どのようにプロパティに文字列の存在を確認するために
<PropertyGroup>
<MyProp>abd;efg;hij;klm</MyProp>
</PropertyGroup>
にはどうすればklm
の存在を確認するために$(MyProp)
を解析していますか?
property functionsを使用すると、Contains()
文字列を呼び出して、文字列の出現をチェックできます。項目を使用して(Include="$(MyProp)"
を通して)、期待されるアイデンティティを持つ項目が存在するかどうかを確認するオプションもありますが、プロパティ関数を使用する条件は、ターゲットの内側と外側の両方のmsbuild要素で使用できます。
例:
<Project>
<PropertyGroup>
<MyProp>abd;efg;hij;klm</MyProp>
</PropertyGroup>
<Target Name="Build">
<Message Importance="high" Text="klm is included!" Condition="$(MyProp.Contains('klm'))" />
<PropertyGroup>
<MyProp>;$(MyProp);</MyProp>
</PropertyGroup>
<Message Importance="high" Text="exactly klm is included!" Condition="$(MyProp.Contains(';klm;'))" />
</Target>
</Project>
第二のアプローチ - 前と;
を追加し、;klm;
をチェック - 文字列がリストに全体として一致していることを確認してくださいが;aklm
に対処することができます。