带有代码修复的 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)
为了创建带有代码修复的 Roslyn 诊断,我得到了一个 NuGet 包和一个 VSIX - 如自述文件所述:
“构建此项目将生成一个分析器 .dll,以及您可能希望打包该分析器的以下两种方式:
一个 NuGet 包(.nupkg 文件),它将您的程序集添加为参与构建的项目本地分析器。
一个 VSIX 扩展(.vsix 文件),它将把你的分析器应用到所有项目中,并且只在 IDE 中工作。"
现在出现以下情况:如果两者都安装了会怎么样 – NuGet 作为项目的一部分(例如公司政策针对该项目),VSIX 部分作为开发人员的本地安装(例如她获得其他项目的分析器)也)。从今天开始,针对上述情况的建议将出现 两次 。
我能否以某种方式告诉 VS2015 两者 (NuGet/VSIX) 实际上是相同的(并且只运行一次)?或者是一种首选部署方法(例如 NuGet)而另一种方法 (VSIX) 仅用于调试诊断(比 NuGet 更方便)?有官方指导吗?
(注意:我在 NR6Pack 上工作)
我们最近进行了更改,以根据分析器名称进行统一。因此,在 VSIX 分析器和项目分析器都具有相同的 AssemblyName 的情况下,它只会 运行 一次,并且在错误列表中只会报告一次问题。此更改应显示在 VS2015 的下一个更新中(不幸的是,它没有进入最近发布的 VS 2015 CTP5)。
将 NuGet 与 VSIX 作为部署机制选择:
- 通过 NuGet 部署并将分析器附加到项目意味着分析器与项目一起移动到源代码控制,因此很容易为团队应用相同的规则。这也意味着命令行构建报告分析器报告的问题。
- 部署为 VSIX 意味着 VS 中的每个项目和那些问题都不会通过命令行构建产生。
我想象的方式是,大多数规则应该通过 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 分析器和项目分析器都具有相同的 AssemblyName 的情况下,它只会 运行 一次,并且在错误列表中只会报告一次问题。此更改应显示在 VS2015 的下一个更新中(不幸的是,它没有进入最近发布的 VS 2015 CTP5)。
将 NuGet 与 VSIX 作为部署机制选择:
- 通过 NuGet 部署并将分析器附加到项目意味着分析器与项目一起移动到源代码控制,因此很容易为团队应用相同的规则。这也意味着命令行构建报告分析器报告的问题。
- 部署为 VSIX 意味着 VS 中的每个项目和那些问题都不会通过命令行构建产生。
我想象的方式是,大多数规则应该通过 NuGet 部署并在团队级别强制执行,但个人偏好的规则可能应该通过 VSIX 部署。