У нас есть несколько шаблонов, написанных с использованием T4 и реальной библиотеки для создания нескольких файлов.
Один из примеров этого выглядит следующим образом:
Ряд объектов Entity в библиотеке C#, наследуемых от BaseEntity и атрибутированных атрибутом RequiresAudit.
Эти объекты находятся и анализируются в шаблоне T4 с помощью вышеупомянутого наследования BaseEntity и атрибуции RequiresAudit.
После анализа T4 создает 3 триггерных файла SQL, которые применяются в устаревшем инструменте командой БД, и файл документации в формате JSON.
Поэтому мы требуем, чтобы T4 создал ряд артефактов из запуска шаблона — 3 файла Entity.SQL и файл docs.json.
Весь наш новый код на стороне .NET будет перенесен в .NET 5, и это единственный крупный шаг, который наши менеджеры готовы предпринять на данном этапе.
Вопрос...
Как мы можем использовать Roslyn Analyzer или Generator для выполнения точно такой же работы? Мы должны иметь сгенерированные файлы в нашем проекте. Как мы этого достигаем? Кто-нибудь может привести хороший пример? Может ли Roslyn включать файлы в проект в качестве встроенного ресурса, если да, то как?
Мы действительно хотим выучить Roslyn, но мы также боимся, что можем напрасно тратить усилия.
Поддержка T4, похоже, отсутствует в предварительной версии VS2019 (во всяком случае, при использовании .net 5), и я также обеспокоен тем, что движение в области технологий в любом случае тяготеет к миру Roslyn, и что T4 может приближаться к концу жизни.
Все документы, которые я читал о Roslyn Code Generators, похоже, не оставляют после себя никаких файлов и просто компилируют набор функций в сборку без каких-либо следов исходных файлов кода. Я просто не могу найти очевидный способ перейти от T4 к Roslyn так же, как работает t4.
Мне не нужно, почему ты так поступаешь? Комментарии. Мы не можем сильно измениться. Просто хороший дружественный способ (пример) решить проблему без перезаписи различных точек соприкосновения, которые у нас есть в нашей устаревшей системе.