gpt4 book ai didi

c# - 在面向使用者代码的 NuGet 库中使用源生成器

转载 作者:行者123 更新时间:2023-12-04 17:24:07 24 4
gpt4 key购买 nike

我正在尝试使用新的源生成器将我的很多运行时反射内容移动到 AOT,但是我面临一些问题。
先说一下我的要求吧。

  • 该库的代码需要针对 .NET 5,而不是针对 Source Generator 本身,虽然拥有它会很好,但根据 MS dev-blog目前还不可能。
  • 源生成器本身不需要与原始 NuGet 包分开安装。

  • 现在来看一个更直观的例子,假设包 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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com