I am trying to create a project using classes in Microsoft.Build.
Code:
var project = new ProjectInstance(CS_PROJ_FILE); project.Build();
However, this throws the following exception:
Microsoft.Build.Shared.InternalErrorException occurred HResult=0x80131500 Message=MSB0001: Internal MSBuild Error: Type information for Microsoft.Build.Utilities.ToolLocationHelper was present in the whitelist cache as Microsoft.Build.Utilities.ToolLocationHelper, Microsoft.Build.Utilities.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a but the type could not be loaded. unexpectedly null Source=Microsoft.Build
I tried to add the following to packages (both in net452 and in the net7 project):
- id = "Microsoft.Build" version = "15.1.1012"
- id = "Microsoft.Build.Framework" version = "15.1.1012"
- id = "Microsoft.Build.Runtime" version = "15.1.1012"
- id = "Microsoft.Build.Tasks.Core" version = "15.1.1012"
- id = "Microsoft.Build.Utilities.Core" version = "15.1.1012"
Get the same result anyway.
I also tried using BuildManager as follows:
var buildManager = new BuildManager(); buildManager.Build(new BuildParameters(), new BuildRequestData(new ProjectInstance(CS_PROJ_FILE), new[] {"Build"}));
source share