Search code examples
.netvisual-studiocsproj

What a vertical bar means in a PropertyGroup .csproj file


I have a PropertyGroup like this:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
  <DefineConstants>$(DefineConstants)TRACE;X86</DefineConstants>
</PropertyGroup>

I want to know what the vertical bar (|) means when it is placed between parameters in the Condition attribute.


Solution

  • It doesn't mean anything - it's just a way of separating the configuration and platform.

    Note that these aren't really parameters in a condition attribute - they're just property values which are replaced with the MSBuild property. | is unlikely to be part of a configuration or platform name, so it's a good choice as a separator.

    You could have a condition of "'$(Configuration)/$(Platform)'=='Debug/x86'" just as easily, for example. | is just more conventional.