3

我正在使用 C# 9 的 Source Generator 开发一个项目,但是在生成代码时,我希望将生成的代码的不同文件发送到正在生成代码的现有项目中的特定文件路径/位置。

这可能吗?我知道我可以指定它们都放入的文件夹:

<CompilerGeneratedFilesOutputPath>Generated</CompilerGeneratedFilesOutputPath>

并将“生成”更改为我希望生成的文件位于其中的文件夹。因此,如果我已经有一个名为“Models”的文件夹,我知道我会将“Generated”更改为“Models”,然后将其放在那里。

但是,一旦它位于该文件路径中,它就会被放入具有源生成器项目名称的文件夹中,然后是另一个具有 namespace.generatorclassname 的文件夹中。

所以在这种情况下,我发生的是:

  • 'Generated' 是项目中正在生成文件的指定文件夹路径
  • 'SourceGenerator' 是包含实际生成器的项目的名称
  • “生成器”是实际上是合法生成器的类的名称
  • “CustomerTest”文件是正在生成的实际文件

这是我目前正在发生的上述场景的 屏幕截图:生成的文件夹结构的屏幕截图

但是,如果我希望将这些文件中的每一个都生成到目标项目预先存在的文件夹结构中的不同位置,该怎么办?那可能吗?有任何想法吗?

4

0 回答 0