warnings as errors

This commit is contained in:
Matthew Parker [SSW]
2023-11-01 13:45:02 +10:00
parent b4288bfa05
commit b9b2d2c4ec

View File

@@ -37,7 +37,26 @@ public static class WarningsAsErrors
return projectsMissingTreatWarningsAsErrors;
}
public static void AddMissingTreatWarningsAsErrorsToSolution(string solutionFilePath)
{
var solutionFile = SolutionFile.Parse(solutionFilePath);
var csprojList = SolutionProjectParity.GetCSharpProjectObjectsFromSolutionFile(
solutionFile
);
var projectsMissingImplicitUsings = FindCSharpProjectsMissingTreatWarningsAsErrors(csprojList);
AddMissingTreatWarningsAsErrors(projectsMissingImplicitUsings);
}
public static void RemoveAllTreatWarningsAsErrorsInSolution(string solutionFilePath)
{
var solutionFile = SolutionFile.Parse(solutionFilePath);
var csprojList = SolutionProjectParity.GetCSharpProjectObjectsFromSolutionFile(
solutionFile
);
RemoveTreatWarningsAsErrors(csprojList);
}
public static void AddMissingTreatWarningsAsErrors(
List<ProjectRootElement> projectsMissingImplicitUsings
)
@@ -53,6 +72,24 @@ public static class WarningsAsErrors
}
}
}
public static void RemoveTreatWarningsAsErrors(
List<ProjectRootElement> projectList
)
{
foreach (var project in projectList)
{
var treatWarningsAsErrors = project.PropertyGroups
.SelectMany(x => x.Properties)
.FirstOrDefault(x => x.Name == "TreatWarningsAsErrors");
if (treatWarningsAsErrors is not null)
{
treatWarningsAsErrors.Parent.RemoveChild(treatWarningsAsErrors);
project.Save();
FormatCsproj.FormatCsprojFile(project.FullPath);
}
}
}
private static bool ProjectIsMissingTreatWarningsAsErrors(ProjectRootElement project)
{