在.csproj中有一些常量定义如下:
<DefineConstants>DEBUG;TRACE;ANDROID;GLES;OPENGL;OPENAL</DefineConstants>
然后在项目后面有一个项目组
<ItemGroup>
<EmbeddedNativeLibrary Include="..\ThirdParty\Dependencies\openal-soft\libs\armeabi-v7a\libopenal32.so">
<Platforms>Android,Ouya</Platforms>
<Link>libs\armeabi-v7a\libopenal32.so</Link>
</EmbeddedNativeLibrary>
<EmbeddedNativeLibrary Include="..\ThirdParty\Dependencies\openal-soft\libs\armeabi\libopenal32.so">
<Platforms>Android,Ouya</Platforms>
<Link>libs\armeabi\libopenal32.so</Link>
</EmbeddedNativeLibrary>
<EmbeddedNativeLibrary Include="..\ThirdParty\Dependencies\openal-soft\libs\x86\libopenal32.so">
<Platforms>Android,Ouya</Platforms>
<Link>libs\x86\libopenal32.so</Link>
</EmbeddedNativeLibrary>
我希望仅在定义常量OPENAL时才包含此ItemGroup,无论调试或发布如何。我怎么能这样做?
<ItemGroup Condition="XXXXXX" >
XXXXXX会是什么?
答案 0 :(得分:5)
检查是否定义了Constant的条件的语法是:(在本例中为OPENAL)
<ItemGroup Condition="$(DefineConstants.Contains('OPENAL'))">
答案 1 :(得分:1)
您还可以使用<Choose>
元素在msbuild / .csproj文件中创建条件块
如果你想做更复杂的条件处理。
http://msdn.microsoft.com/en-us/library/ms164282.aspx
编辑:尖括号已经消失。