private static void SetMsBuildExePath() { try { // See https://github.com/Microsoft/msbuild/issues/2532#issuecomment-381096259 var process = Process.Start(new ProcessStartInfo("dotnet", "--list-sdks") { UseShellExecute = false, RedirectStandardOutput = true }); process.WaitForExit(1000); var output = process.StandardOutput.ReadToEnd(); var sdkPaths = Regex.Matches(output, "([0-9]+.[0-9]+.[0-9]+) \\[(.*)\\]").OfType <Match>() .Select(m => Path.Combine(m.Groups[2].Value, m.Groups[1].Value, "MSBuild.dll")); var sdkPath = sdkPaths.LastOrDefault() ?? Path.Combine(ProjectExtensions.GetToolsPath(), "msbuild.exe"); Environment.SetEnvironmentVariable("MSBUILD_EXE_PATH", sdkPath); } catch (Exception exception) { ConsoleUtilities.Write("Could not set MSBUILD_EXE_PATH: " + exception + "\n\n"); } }