我正在尝试使用新的源生成器将我的很多运行时反射内容移动到 AOT,但是我面临一些问题。
先说一下我的要求吧。
现在来看一个更直观的例子,假设包 A 是 NuGet 库,它应该包含包 A 的用户的代码。包 B,包含源生成器的包,这些源生成器再次应该在用户代码库上执行,而不是在包装 A。包装 B 应与包装 A 一起运输。
为什么将 Source Generator 与库一起交付如此重要? SG 将生成库本身所需的代码。
我可能在阅读文档时跳过了一些东西,但是我只是无法弄清楚,假设这甚至是可能的。
最佳答案
事实证明,这比预期的要容易。通过使用 PackagePath
将源生成器作为分析器引用,可以在同一个 NuGet 包中提供源生成器。父项目的 .csproj 文件中的参数。
<ItemGroup>
<None Include="Path\To\SourceGenerator\bin\$(Configuration)\netstandard2.0\NameOfSourceGenerator.dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
</ItemGroup>
关于c# - 在面向使用者代码的 NuGet 库中使用源生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64505804/