小编S. *_*lap的帖子

使用C#9 Source Generator时,如何确保文件生成到特定位置/文件路径?

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

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

<CompilerGeneratedFilesOutputPath>Generated</CompilerGeneratedFilesOutputPath>

并将“生成”更改为我希望生成的文件位于其中的文件夹。就像我已经有一个名为“模型”的文件夹一样,我知道我会将“生成”更改为“模型”,然后将其放在那里。

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

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

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

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

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

c# asp.net5 .net-5 sourcegenerators csharp-source-generator

5
推荐指数
1
解决办法
1379
查看次数