void LoadBuildVSConsoleProject (string vsVersion, string toolsVersion)
{
string solFile = Util.GetSampleProject ("ConsoleApp-VS" + vsVersion, "ConsoleApplication.sln");
var monitor = new NullProgressMonitor ();
var sol = (Solution)Services.ProjectService.ReadWorkspaceItem (monitor, solFile);
Assert.IsTrue (monitor.Errors.Length == 0);
Assert.IsTrue (monitor.Warnings.Length == 0);
var p = (DotNetProject) sol.GetAllProjects ().First ();
Assert.AreEqual (toolsVersion, MSBuildProjectService.GetHandler (p).ToolsVersion);
var r = sol.Build (monitor, "Debug");
Assert.IsTrue (monitor.Errors.Length == 0);
Assert.IsTrue (monitor.Warnings.Length == 0);
Assert.IsFalse (r.Failed);
Assert.IsTrue (r.ErrorCount == 0);
//there may be a single warning about not being able to find Client profile
var f = r.Errors.FirstOrDefault ();
var clientProfileError =
"Unable to find framework corresponding to the target framework moniker " +
"'.NETFramework,Version=v4.0,Profile=Client'";
if (f != null)
Assert.IsTrue (f.ErrorText.Contains (clientProfileError), "Build failed with: " + f.ErrorText);
string projectFile = ((Project)sol.Items [0]).FileName;
string solXml = Util.ReadAllWithWindowsEndings (solFile);
string projectXml = Util.ReadAllWithWindowsEndings (projectFile);
sol.Save (monitor);
Assert.IsTrue (monitor.Errors.Length == 0);
Assert.IsTrue (monitor.Warnings.Length == 0);
Assert.AreEqual (projectXml, Util.ReadAllWithWindowsEndings (projectFile));
}