private async Task CleanAll(IConsole console, IStandardProject superProject, IStandardProject project)
{
foreach (var reference in project.References)
{
var loadedReference = reference as IStandardProject;
if (loadedReference != null)
{
if (loadedReference.Type == ProjectType.Executable)
{
await CleanAll(console, loadedReference, loadedReference);
}
else
{
await CleanAll(console, superProject, loadedReference);
}
}
}
var outputDirectory = project.GetObjectDirectory(superProject);
var hasCleaned = false;
if (Directory.Exists(outputDirectory))
{
hasCleaned = true;
try
{
Directory.Delete(outputDirectory, true);
}
catch (Exception)
{
}
}
outputDirectory = project.GetOutputDirectory(superProject);
if (Directory.Exists(outputDirectory))
{
hasCleaned = true;
try
{
Directory.Delete(outputDirectory, true);
}
catch (Exception)
{
}
}
if (hasCleaned)
{
console.WriteLine(string.Format("[BB] - Cleaning Project - {0}", project.Name));
}
}