In our C# code we have a static class with a Boolean variable IS_FEATURE_X_ENABLED
and we want to be able to set this variable during the compile time, means when we call MSBuild.exe the value will be included as an argument. For example:
MSBuild.exe FeatureFlexibleApp.sln -p:IsFeatureXEnabled=true
The reason for this is that we want to be able to build binaries with a specific configuration, but before the compilation this value is not known. If a customer wants this feature, they can select that on our web page and the binaries will be built and packaged on a Jenkins server, then a download link will be sent to the user (either per email or it will be shown on the webpage if they wait for the compilation to finish). In this case only one variable is used, but in reality this number does not have to have a limit (so pre-building all possible combinations is not a feasible option).