VS2015 诊断与代码修复 - NuGet 或 VSIX 或两者



使用 .NET 编译器平台 SDK 模板时 (https://visualstudiogallery.msdn.microsoft.com/849f3ab1-05cf-4682-b4af-ef995e2aa1a5)

若要使用代码修复创建 Roslyn 诊断,我同时获得 NuGet 包和 VSIX - 如自述文件所述:

"构建此项目将生成一个分析器.dll,以及您可能希望打包该分析器的以下两种方式:

  • 一个 NuGet 包(.nupkg 文件),它将程序集添加为参与生成的项目本地分析器。

  • VSIX 扩展名(.vsix 文件),它将分析器应用于所有项目,并且仅在 IDE 中工作。

现在以下方案:如果两者都安装怎么办 – NuGet 作为项目的一部分(例如此项目的公司策略),开发人员本地安装的 VSIX 部分(例如,让她也获取其他项目的分析器)。截至今天,对于上述情况,建议将显示两次

我可以以某种方式告诉VS2015两者(NuGet/VSIX)实际上是相同的(并且它只运行一次)吗?还是首选一种方法进行部署(例如 NuGet),而另一种方法 (VSIX) 仅用于调试诊断(比 NuGet 更方便)?对此是否有一些官方指导?

(注意:我在NR6Pack上工作)

我们最近进行了更改,以根据分析器名称进行统一。因此,如果 VSIX 分析器和项目分析器都具有相同的程序集名称,则它只会运行一次,并且只会在错误列表中报告一次问题。此更改应该显示在VS2015的下一次更新中(不幸的是,它没有进入最近发布的VS 2015 CTP5)。

关于 NuGet 与 VSIX 作为部署机制选择:

  • 通过 NuGet 进行部署并将分析器附加到项目意味着分析器随项目一起传输到源代码管理,因此可以轻松地为团队应用相同的规则。这也意味着命令行生成报告分析器报告的问题。
  • 部署为 VSIX 意味着 VS 中的每个项目和这些问题都不会通过命令行生成。

我想象的方式是,大多数规则应该通过 NuGet 部署并在团队级别强制实施,但个人首选项的规则可能应该通过 VSIX 部署。

最新更新