If a property value ends with a backslash, it does not get escaped and goes into the msbuild command line “as is”. As the property value is enclosed in quotes, the closing quote with a backslash is treated as an escaped quote, and the next command-line argument is glued with the property value.
… <property name="OutDir" value="t:\bin\" /> …
Suppose the command-line like "/p:OutDir=t:\bin\" /p:Something=Else
in this case, the OutDir's value is “t:\bin" /p:Something=Else”, and the “Something” property is not set at all.