如何使用附带的源生成器发送 .Net 库?

sw1*_*337 6 c# asp.net roslyn csharp-source-generator

我不知道如何发送还包含 Roslyn 源生成器的 .Net 库,并让源生成器访问主项目的源代码,而不添加从主项目到生成器的显式引用。

目前,我的源代码生成器只能看到我的库的源代码,而看不到主调用项目的源代码。

这是我设置项目的方式:

User "console" test project -> project dependency on -> My lib -> project dependency on -> My source generator

我的库和源生成器一起分发,我希望用户引用该库,但不必担心设置源生成器。

Jas*_*ski 6

为此,您应该将库和源生成器作为单个 NuGet 包进行分发,并将生成器嵌入为分析器。本文档提供了一些如何为生成器制作 NuGet 包的示例。这样,当用户安装 NuGet 包时,他们将立即获得两个引用。