2017-07-28 77 views
0

我們正在努力爲我們的公司基於微軟的默認的自定義規則集,但有一些禁用了爭議較大的。這工作正常。 StyleCop.Analysers效果很好,並且適當地創建了警告和錯誤。它甚至適用於我們的構建服務器。項目的StyleCop.Analyzers規則集出現在其他的解決方案

但是......我在解決方法1添加到項目A的規則集列在規則集項目B在溶液2的droplist。這是個問題。如果我選擇這個規則集,那麼它將在本地工作,但是當我檢查它時,沒有其他人會有相同的路徑。由於我們希望通過nuget提供這些規則集,因此所有公司規則集將具有相同的名稱並且彼此不可區分。所以,即使你的意思是,真的很難找到你當前解決方案中的正確選擇。

這顯然很爛,我不能相信這是操作的意圖模式。我錯過了什麼?規則集中是否有一個標誌使其在本地範圍內而不是整個機器範圍內? Microsoft支持您在項目中創建rulset,那麼爲什麼他們可以在不相關的解決方案中使用?

我是否需要解決此問題並將它們作爲VS擴展安裝一次?這對於文本文件來說似乎非常複雜。這是VS2017中的錯誤嗎?

任何指針十分讚賞

- 更新 -

我可以安裝rulset在這裏:

「C:\ Program Files文件(x86)的\微軟的Visual Studio \ 2017年\企業\團隊工具\靜態分析工具\規則集」

他們將VS2017有所回升。這很好,但是現在,如果我嘗試在構建服務器上構建它,則不會有這些文件,而且人們的機器可能有不同的版本。這是一團糟。

我需要能夠將規則集添加到一個解決方案,該解決方案中使用它 - 沒有進一步。

- 進一步更新 -

看起來它是編輯器是flakey。如果你加載了一個規則集,它會將它添加到它所維護的內部列表中。每當你去到可用規則集的下拉列表時,它都會顯示你看到的那些仍然可用的規則集。

回答

0

所以(除非有人知道更好),這似乎像這個過程就是破ATM在vs2017。我的解決方法是在規則集名稱中添加nuget包將要部署到的項目的名稱空間。這並不能阻止列表中的重複,但這意味着您可以實際分辨差異並選擇規則集的正確副本。

如何轉換NuGet安裝上的rulset?將「.pp」添加到文件名的末尾,並且該文件將被解析以查找佔位符。因此,在這種情況下,我的「Test.ruleset.pp」文件將有一個節點這樣的:

<RuleSet Name="$rootnamespace$ Recommended Debug RuleSet" Description=" " ToolsVersion="15.0"> 

是的,這是相當冗長的名字去,在微軟去抱怨自己的規則集流程被打破。

其他佔位符可以在這裏找到: https://msdn.microsoft.com/library/vslangproj.projectproperties_properties.aspx

相關問題