我可以在定义的解决方案中使用 roslyn 分析器吗?

Iai*_*way 6 c# visual-studio visual-studio-2015 roslyn-code-analysis

据我了解,有两种方法可以分发和使用 roslyn 分析器:-

  1. 作为 Visual Studio 插件
  2. 作为 Nuget 包

我经常发现自己想要强制执行某些特定于域的限制,以及方便的代码修复。(例如,“我们需要实体框架延迟加载,因此 WidgetFrobber.EntityFrameworkEntities 命名空间中的每个导航属性都应该是虚拟的。”)

如果我团队中的某个人不小心编写了public ICollection<Widget>而不是 ,那么编写一个使构建失败的小型分析器是微不足道的public virtual ICollection<Widget>,但是由于这个假设的分析器不打算在我的团队之外共享(或者,实际上,超出它定义的 .sln)我宁愿在更新分析器时不分发插件或更新 nuget 包。

  • References -> Add Reference -> Project 让我引用分析器的类型,但实际上并未将其添加为分析器。

  • References -> Analyzers -> Add Analyzer -> Browse... 需要 .dll 而不是项目引用。

是否可以在定义它的 .sln 中引用 Roslyn 分析器,就像我可以引用另一个项目一样?

SLa*_*aks 3

您可以单击“添加分析器”,然后添加项目构建的DLL。

您可能想要添加发布版本(除非您必须先发布版本才能构建调试)。