使用.NET Compiler Platform SDK模板(https://visualstudiogallery.msdn.microsoft.com/849f3ab1-05cf-4682-b4af-ef995e2aa1a5)时
创建带有代码修复的Roslyn诊断程序,我同时获得了NuGet包和VSIX-如自述文件所述:
“构建该项目将生成一个分析器.dll,以及您可能希望通过以下两种方式打包该分析器:
现在,出现以下情况:如果同时安装了两者,该怎么办– NuGet作为项目的一部分(例如,该项目的公司政策),是开发人员本地安装的VSIX部分(例如,她也为其他项目获得了分析仪)。截至今天,针对上述情况的建议将出现两次。
我能以某种方式告诉VS2015这两个(NuGet/VSIX)实际上是相同的(并且仅运行一次)吗?还是一种首选部署方法(例如NuGet)而另一种首选用于调试诊断(比NuGet更为方便)的方法(VSIX)?有官方的指导吗?
(注意:我使用的是NR6Pack)
最佳答案
最近,我们根据分析器名称进行了更改以统一。因此,在VSIX分析器和项目分析器都具有相同的AssemblyName的情况下,它将仅运行一次,并且在错误列表中仅报告一次问题。此项更改应显示在VS2015的下一个更新中(不幸的是,它没有纳入最近发布的VS 2015 CTP5中)。
将NuGet与VSIX作为部署机制的选择:
我的想象方式是,大多数规则应该通过NuGet部署并在团队级别执行,但是个人喜好的规则可能应该通过VSIXes部署。