Вы можете переопределить это значение при компиляции проекта с MSBuild.
msbuild.exe myproj.csproj /p:DefineConstants="foo=true"
Вы не можете установить свойства сборки в задаче BeforeBuild, но вы можете прочитать их, используя:
$(DefineConstants)
Это вернет необработанную строку, и вам потребуется проанализировать строку с помощью пакетных команд, чтобы разделить их на пары ключ / значение на этапе BeforeBuild.
Не совсем уверен, что вы пытаетесь сделать, DefineConstants как раз и упоминаются в коде для условной компиляции. Если вы хотите добавить пользовательские свойства сборки, вы можете отредактировать файл csproj и включить свой собственный файл целей. Это зависит от того, где и почему вы хотите получить к ним доступ. В процессе сборки IDE (плагин) или код?