Я создал проект Roslyn Analyzer, который генерирует пакет nuget и его DLL. Я хочу использовать эту DLL в отдельном проекте анализа кода. Как я могу это сделать? Например, у меня есть следующий код:
MSBuildLocator.RegisterDefaults();
var filePath = @"C:\Users\user\repos\ConsoleApp\ConsoleApp.sln";
var msbws = MSBuildWorkspace.Create();
var soln = await msbws.OpenSolutionAsync(filePath);
var errors = new List<Diagnostic>();
foreach (var proj in soln.Projects)
{
var analyzer = //Here i want to load analyzer from DLL present locally.
var compilation = await proj.GetCompilationAsync();
var compWithAnalyzer = compilation.WithAnalyzers(analyzer.GetAnalyzersForAllLanguages());
var res = compWithAnalyzer.GetAllDiagnosticsAsync().Result;
errors.AddRange(res.Where(r => r.Severity == DiagnosticSeverity.Error).ToList());
}
Я пробовал следовать
var analyzer = new AnalyzerFileReference("Path to DLL", new AnalyzerAssemblyLoader());
Но здесь AnalyzerAssemblyLoader показывает ошибку, поскольку он недоступен для его уровня защиты ( class является внутренним).
Пожалуйста, подскажите, сможем ли мы это сделать.