Я провел весь день, пытаясь запустить генератор исходного кода в Visual Studio 2022. Я скачал несколько исходных кодов, и ни один из них не работает. Ни примеры Microsoft. Я пытался использовать код для создания DTO из доменных классов.
Итак, я создал простой проект ClassLibrary1 на основе NETStandard 2.1 и добавил этот класс CustomGenerator (код из документации Microsoft) с использованием Microsoft.CodeAnaанализ; использование Microsoft.CodeAnaанализ.Text; использование системы; использование System.Text; пространство имен ClassLibrary1 { [Генератор] открытый класс CustomGenerator: ISourceGenerator { public void Initialize (контекст GeneratorInitializationContext) { } public void Execute (контекст GeneratorExecutionContext) { context.AddSource("myGeneratedFile.cs", SourceText.From(@" пространство имен { общедоступный класс GeneratedClass { общественный статический недействительный GeneratedMethod() { // сгенерированный код } } }", Кодировка.UTF8)); } } } Затем в другом проекте NET7 я добавил ClassLibrary1 в качестве ссылки. Я вручную изменил проект и результат
net7.0 включить включить true Я собрал и пересобрал решение и перезапустил Visual Studio. В результате генератор источника игнорируется.

Это проект ClassLibrary1
netstandard2.1 включить все истинный Сгенерировано