MSBuild does not select, but any MSBuild project that it creates can use certain properties by default. I assume your question is about how MSBuild creates the solution file.
msbuild.exe "somesolution.sln" /t:Build
You need to look at the projects that make up the solution, there you will see the settings that are installed. For example, you will probably see the following at the top of the project file:
<PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> ... </PropertyGroup>
This shows a PropertyGroup containing, among other things, two properties, Configuration and Platform . Their values are set based on Condition . The condition says that if no value has been set for the Configuration property, it should default to "Debug". Similarly, if nothing is installed for the Platform , it must be set to AnyCPU .
You can also see the Conditional PropertyGroup :
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> ... </PropertyGroup>
This condition says that if the Configuration and Platform property matches Debug and AnyCPU , then it should apply all the properties contained inside.
It should be noted that property names are just an arbitrary name, and values are just strings. However, when creating .Net projects, there is an agreement to which these properties and their values are part. To find out what default values you do not need to open each project in a text editor. You can go to Visual Studio and see the solution configuration.

source share