/// <summary> /// Gets the command line args to create a code analysis project /// </summary> /// <param name="proj">The build project</param> /// <returns>An enumerable list of arguments</returns> private IEnumerable <string> CommandLineArgsFromBuildProject(MsBuild.Project proj) { StringBuilder builder = new StringBuilder(); string projDir = proj.DirectoryPath; // references (non-project since project are handled later) IEnumerable <ResolvedReference> resolvedRefs = _refResolver.ResolveReferences(proj); foreach (ResolvedReference oneRef in resolvedRefs) { builder.Append(oneRef.CommandLineArg); } // Compile files IEnumerable <MsBuild.ProjectItem> compile = proj.Items.Where(itm => itm.ItemType == "Compile"); foreach (MsBuild.ProjectItem item in compile) { builder.Append($"{item.EvaluatedInclude} "); } // /out provides a name builder.Append($"/out:{new FileInfo(proj.FullPath).Name} "); // target: TODO: What does this do? builder.Append("/target:library "); return(CodeAnalysis.CommandLineParser.SplitCommandLineIntoArguments(builder.ToString(), true)); }