繁体   English   中英

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

[英]VS2015 Diagnostic with Code Fix - NuGet OR VSIX OR both?

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

使用Code Fix创建一个Roslyn Diagnostic,我得到一个NuGet包和一个VSIX - 如自述文件所述:

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

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

  • 一个VSIX扩展(.vsix文件),它将您的分析器应用于所有项目,并且只在IDE中工作。“

现在出现以下情况:如果两者都已安装 - 作为项目的一部分的NuGet(例如,该项目的公司策略),开发人员本地安装的VSIX部分(例如,因此她也获得了其他项目的分析器)。 截至今天,建议将针对上述情况出现两次

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

(注意:我在NR6Pack上工作)

我们最近根据分析仪名称进行了统一更改。 因此,在VSIX分析器和Project分析器都具有相同AssemblyName的情况下,它只会运行一次,并且只会在错误列表中报告一次问题。 此更改应显示在VS2015的下一次更新中(尽管不幸的是它没有进入最近发布的VS 2015 CTP5)。

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

  • 通过NuGet进行部署并将分析器附加到项目意味着分析器随项目一起移动到源控制,因此很容易为团队应用相同的规则。 它还意味着命令行构建报告分析器报告的问题。
  • 部署为VSIX意味着VS中的每个项目都不会通过命令行构建生成。

我想象的方式是大多数规则应该通过NuGet部署并在团队级别强制执行,但个人偏好的规则应该通过VSIX来部署。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM