禁用特定的C# 9源代码生成器

14
有没有办法禁用特定的C# 9源代码生成器?或者禁用所有生成器?
相关的包是https://github.com/Husqvik/GraphQlClientGenerator#c-9-source-generator,它既可以作为库使用,也可以作为源代码生成器使用。但这两种用法是互斥的,即在大多数情况下,通过执行代码和代码生成来生成代码是没有意义的。

3
你做了什么努力? - Daniel A. White
5
让我们询问一位维护多个非常重要的开源项目(并且有合理声望)的人是否已经尽力了。 - Matthias
2
@DanielA.White 我花了大约45分钟的时间进行研究,但没有找到任何能够指导我该尝试什么的方向。 - Simon
1
@JeremyLakeman 我尝试了几种不同的排除/包含组合,但生成器仍在运行。例如:IncludeAssets="compile" ExcludeAssets="all" - Simon
@JeremyLakeman ExcludeAssets 对我没有起作用。 - Simon
显示剩余5条评论
1个回答

17

看起来这将禁用所有内容

<Target Name="DisableAnalyzers" 
        BeforeTargets="CoreCompile">
  <ItemGroup>
    <Analyzer Remove="@(Analyzer)" />
  </ItemGroup>
</Target>

删除一个指定的名称需要使用文件路径

<Target Name="DisableAnalyzers"
        BeforeTargets="CoreCompile">
  <ItemGroup>
    <Analyzer Remove="D:\nugets\nugetx\0.9.2\analyzers\dotnet\cs\NugetXAnalizer.dll" />
  </ItemGroup>
</Target>

好的,最后你可以根据文件名删除。

<Target Name="DisableAnalyzers"
        BeforeTargets="CoreCompile">
  <ItemGroup>
    <Analyzer Remove="@(Analyzer)"
              Condition="'%(Filename)' == 'NugetXAnalizer'"/>
  </ItemGroup>
</Target>

你好,目标在哪里添加?我该如何将目标集成到我的解决方案中?谢谢。 - EldadC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接