Microsoft .net Framework 4 Multi Targeting Pack [upd]
If you are setting up a build server (like Azure DevOps or Jenkins), you might run into errors like "The reference assemblies for framework .NETFramework,Version=v4.0 were not found." This is the server's way of telling you that the Multi-Targeting Pack is missing, not the Runtime.
The Multi-Targeting Pack is a "time machine" for your compiler. When you install it, Visual Studio understands .NET Framework 4.0’s exact API surface. It ensures you don't accidentally use a method that was introduced in .NET 4.5 (like String.IsNullOrWhiteSpace ) when your target is .NET 4.0. microsoft .net framework 4 multi targeting pack
This was a pivotal moment. The 4.5 pack includes the reference assemblies for 4.0, 4.5, and intermediate versions (like 4.0.1 and 4.0.2). Therefore, on modern systems, installing the 4.5 Targeting Pack effectively satisfies the requirement to target .NET 4.0. If you are setting up a build server