【问题标题】:Disabling a specific C# 9 source generator禁用特定的 C# 9 源代码生成器
【发布时间】:2021-05-13 17:58:44
【问题描述】:

有没有办法禁用特定的 C# 9 源代码生成器?或者将它们全部禁用?

有问题的包是https://github.com/Husqvik/GraphQlClientGenerator#c-9-source-generator,这意味着能够同时用作库和源代码生成器。但它们是互斥的,即大多数用例通过执行代码和代码生成来生成代码是没有意义的

【问题讨论】:

  • 非常确定源生成器只是花哨的分析器,您可以禁用它们。
  • 你做了哪些努力?
  • 让我们问问几个非常重要的开源项目的维护者(并且有合理的代表),如果他付出了努力。
  • @DanielA.White 我花了大约 45 分钟的时间进行研究。甚至没有给我一个尝试的方向。
  • @JeremyLakeman 我尝试了一些排除/包含的差异组合。发电机仍在运行。例如 IncludeAssets="compile" ExcludeAssets="all"

标签: c# c#-9.0 sourcegenerators


【解决方案1】:

似乎这将禁用所有

<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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-11
    • 2013-06-24
    • 2014-08-13
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 2013-10-19
    • 2021-09-17
    相关资源
    最近更新 更多