Код: Выделить всё
namespace SourceGen
{
[Generator]
public class Class1 : IIncrementalGenerator
{
public void Initialize(IncrementalGeneratorInitializationContext context)
{
var projDirectory = context.AnalyzerConfigOptionsProvider
.Select((x, _) => x.GlobalOptions
.TryGetValue("build_property.MSBuildProjectDirectory", out var projectDirectory) ? projectDirectory : null);
File.AppendAllText("\\" + "log.txt", projDirectory );
}
}
}
microsoft.codeanalysis.incrementalvalueprovider`1nsystem.string=/p>образной
Код: Выделить всё
var mainSyntaxTree = context.CompilationProvider.Select((x, _) => x.SyntaxTrees.First(x => x.HasCompilationUnitRoot));
var directory = Path.GetDirectoryName(mainSyntaxTree.Select((x, _) => x.FilePath);
Не уверен, как я могу получить полезное строковое значение (
Код: Выделить всё
FilePath
третий подход
На этот раз файл журнала не был записан/вообще не создан:
Код: Выделить всё
var provider = context.AnalyzerConfigOptionsProvider.Select((x, _) =>
{
x.GlobalOptions.TryGetValue("build_property.MSBuildProjectDirectory", out var projectDirectory);
File.AppendAllText("\\" + "log.txt", "testing" + projectDirectory);
return projectDirectory;
});
Подробнее здесь: https://stackoverflow.com/questions/782 ... value-from