提示:以下内容纯属瞎编
鲁迅又说过:写得再好的代码,不会打包,那有屁用

从源生成器创建NuGet包类似于标准库的NuGet包,但NuGet包的内容布局不同。具体来说,您必须:
·确保生成输出最终位于NuGet包的analyzers/dotnet/cs文件夹中。
确保dLL不会出现在NuGet包的normal”文件夹中。
对于第一点,请确保您的项目中有以下内容:
代码如下:
<ItemGroup>
<None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false"></None>
</ItemGroup>
这将确保源生成器程序集被打包到NuGt包,中的正确位置,以便编译器将其作为分析器/源生成器加载,
您还应该将该属性设置为,以便使用项目不会获得对源生成器dLL本身的明引用:IncludeBuildOutputfalse
代码如下:
<PropertyGroup>
<IncludeBuildOutput>false</IncludeBuildOutput>
</PropertyGroup>
完成后如下图


这样在项目bin目录下的Debug文件夹中就会出现包了
