gpt4 book ai didi

c# - 带有代码修复的 VS2015 诊断 - NuGet 或 VSIX 或两者?

转载 作者:太空狗 更新时间:2023-10-29 20:27:20 24 4
gpt4 key购买 nike

使用 .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 部署。

关于c# - 带有代码修复的 VS2015 诊断 - NuGet 或 VSIX 或两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28053514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com