static void Main(string[] args) { //TODO: Accept command line params for paths string projectPath = Environment.CurrentDirectory + "../../../../ThreadSafetyAnnotations.Consumer.LinkedListExample/ThreadSafetyAnnotations.Consumer.LinkedListExample.csproj"; ProjectInspector inspector = new ProjectInspector(); InspectionResult result = inspector.Inspect(projectPath); if (result.InspectionSuccessed) { Console.WriteLine("Inspection succeeded"); } else { Console.WriteLine("Inspection failed"); foreach (AnalysisResult analysisResult in result.FailingAnalysisResults) { foreach (Issue issue in analysisResult.Issues) { Console.WriteLine(issue.Description); Console.WriteLine(issue.SourceFileName + " line: " + issue.SourceLineNumber.ToString()); Console.WriteLine(issue.SourceLineText); Console.WriteLine(); } } } Console.ReadLine(); }
private static void Main(string[] args) { //TODO: Accept command line params for paths string projectPath = Environment.CurrentDirectory + "../../../../ThreadSafetyAnnotations.Consumer.ConcurrentListExample/ThreadSafetyAnnotations.Consumer.ConcurrentListExample.csproj"; ProjectInspector inspector = new ProjectInspector(); InspectionResult result = inspector.Inspect(projectPath); if (result.InspectionSuccessed) { var compilation = result.Project.GetCompilation(); CommonEmitResult emitResult; string outputFile = result.Project.AssemblyName; using (var file = new FileStream(outputFile, FileMode.Create)) { //TODO: Add command line parameter for output location emitResult = compilation.Emit(file); } if (emitResult.Success) { Console.WriteLine("Compilation succeeded"); } else { Console.WriteLine("Compilation failed"); foreach (Diagnostic diagnostic in emitResult.Diagnostics) { Console.WriteLine(string.Empty); Console.WriteLine(diagnostic.Info); Console.WriteLine(diagnostic.Location); } } } else { Console.WriteLine("Inspection failed"); foreach (AnalysisResult analysisResult in result.FailingAnalysisResults) { foreach (Issue issue in analysisResult.Issues) { Console.WriteLine(issue.Description); Console.WriteLine(issue.SourceFileName + " line: " + issue.SourceLineNumber.ToString()); Console.WriteLine(issue.SourceLineText); Console.WriteLine(); } } } Console.ReadLine(); }