#c# #.net-5 #asp.net5 #sourcegenerators #csharp-source-generator
Вопрос:
Я работаю над проектом, использующим генератор исходных текстов C# 9, но при создании кода я хочу, чтобы разные файлы сгенерированного кода отправлялись в определенные пути/местоположения файлов в рамках существующего проекта, в котором создается код.
Возможно ли это? Я знаю, что могу указать папку, в которую они все помещены, используя:
<CompilerGeneratedFilesOutputPath>Generated</CompilerGeneratedFilesOutputPath>
и изменив «Сгенерированный» на папку, в которой я хочу, чтобы сгенерированные файлы находились внутри. Так что, например, если у меня уже есть папка «Модели», я понимаю, что изменил бы «Сгенерированные» на «Модели», а затем поместил бы ее туда.
Однако, как только он окажется внутри этого пути к файлу, он помещается в папку с именем имени проекта исходного генератора, а затем в другую папку с пространством имен.generatorclassname.
Так что в данном случае то, что у меня происходит, — это:
- «Сгенерировано» — это указанный путь к папке в проекте, в котором создаются файлы
- «SourceGenerator» — это название проекта, в котором размещен фактический генератор
- «Генератор» — это имя класса, который на самом деле является законным генератором
- Файлы «CustomerTest» — это фактические создаваемые файлы
Вот скриншот описанного выше сценария, который у меня сейчас происходит: Скриншот сгенерированной структуры папок
Однако что, если я хочу, чтобы каждый из этих файлов был сгенерирован в другом месте в уже существующей структуре папок целевого проекта? Возможно ли это? Есть какие-нибудь идеи?
Комментарии:
1. Нет. У вас даже нет контроля над именем файла файла (вы можете дать подсказку, но Рослин может игнорировать ее, если захочет).