Visual studio 在.csproj中使用条件符号

Visual studio 在.csproj中使用条件符号,visual-studio,msbuild,Visual Studio,Msbuild,在.csproj中,有一些常量定义如下: <DefineConstants>DEBUG;TRACE;ANDROID;GLES;OPENGL;OPENAL</DefineConstants> DEBUG;痕迹;安卓格尔斯;OPENGL;开放的 然后在项目的后面有一个项目组 <ItemGroup> <EmbeddedNativeLibrary Include="..\ThirdParty\Dependencies\openal-soft\libs\arm

在.csproj中,有一些常量定义如下:

<DefineConstants>DEBUG;TRACE;ANDROID;GLES;OPENGL;OPENAL</DefineConstants>
DEBUG;痕迹;安卓格尔斯;OPENGL;开放的
然后在项目的后面有一个项目组

<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>

安卓,Ouya
libs\armeabi-v7a\libopenal32.so
安卓,Ouya
libs\armeabi\libopenal32.so
安卓,Ouya
libs\x86\libopenal32.so
我希望仅在定义常量OPENAL时才包含此ItemGroup,而不管是调试还是发布。我该怎么做

<ItemGroup Condition="XXXXXX" >


XXXXXX是什么?

检查是否定义了常数的条件的语法是:(在本例中为OPENAL)


您还可以使用
元素在msbuild/.csproj文件中创建条件块 如果你想做更复杂的条件处理


已编辑:尖括号已消失。

找到答案。。。谢谢,当我有两种配置时,它解决了我的问题。一个用于调试,另一个用于发布,当在项目的“条件编译符号”生成页面上定义常量时,可以使用一个条件来进行调试和发布。不必这样做:条件=“$(配置)”==“测试调试”或“$(配置)”==“测试发布”,但条件=“$(DefineConstants.Contains('TEST')”)。
<ItemGroup Condition="$(DefineConstants.Contains('OPENAL'))">