簡體   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