The solution is just a (rather dumb) container for projects. If you open it in a text editor, you will quickly see that it cannot be expanded, add only projects / elements.
What you want is one or more common msbuild files that define all the necessary parameters for the compiler / linker / any tools you use, and Import in each individual project. We have used this for many years and itβs very convenient (although part of the convenience, we probably also wrote a small tool for creating project files to automatically import global properties, so we donβt have to bother with them manually)
Alternatively, you can add the file with the machine, look in the file $ (MSBuildToolsPath) \ Microsoft.CSharp.targets to find out where to place these files. I am not going to copy / paste the contents here, but the very first lines basically check if there are user files with errors, for example $ (MSBuildExtensionsPath) \ $ (MSBuildToolsVersion) \ $ (MSBuildThisFile) \ ImportBefore, and if so, all imported before all common msbuild materials. Similarly, the end of Microsoft.CSharp.targets contains similar logic for importing files after all common msbuild files.
stijn source share