void CheckSolutionBuildClean(Solution sol, string configuration)
{
SolutionConfigurationSelector config = (SolutionConfigurationSelector)configuration;
string tag = "CheckSolutionBuildClean config=" + configuration;
DotNetProject lib1 = (DotNetProject)sol.FindProjectByName("Lib1");
DotNetProject lib2 = (DotNetProject)sol.FindProjectByName("Lib2");
DotNetProject lib3 = (DotNetProject)sol.FindProjectByName("Lib3");
DotNetProject lib4 = (DotNetProject)sol.FindProjectByName("Lib4");
Assert.IsFalse(File.Exists(lib1.GetOutputFileName(config)), tag);
Assert.IsFalse(File.Exists(lib2.GetOutputFileName(config)), tag);
Assert.IsFalse(File.Exists(lib3.GetOutputFileName(config)), tag);
Assert.IsFalse(File.Exists(lib4.GetOutputFileName(config)), tag);
BuildResult res = sol.Build(Util.GetMonitor(), config);
Assert.AreEqual(0, res.WarningCount, tag);
Assert.AreEqual(0, res.ErrorCount, tag);
Assert.IsTrue(File.Exists(lib1.GetOutputFileName(config)), tag);
Assert.IsTrue(File.Exists(lib2.GetOutputFileName(config)), tag);
Assert.IsTrue(File.Exists(lib3.GetOutputFileName(config)), tag);
Assert.IsTrue(File.Exists(lib4.GetOutputFileName(config)), tag);
sol.Clean(Util.GetMonitor(), config);
Assert.IsFalse(File.Exists(lib1.GetOutputFileName(config)), tag);
Assert.IsFalse(File.Exists(lib2.GetOutputFileName(config)), tag);
Assert.IsFalse(File.Exists(lib3.GetOutputFileName(config)), tag);
Assert.IsFalse(File.Exists(lib4.GetOutputFileName(config)), tag);
}