2013-10-04 42 views
2

我想弄清楚爲什麼代碼分析會運行並檢測我們的構建服務器上的錯誤,但在本地構建時看不到相同的錯誤。下面是一個代碼示例多數民衆贊成失敗(因爲我們STBi縮寫):只在構建服務器上的代碼分析錯誤

string message = string.Format(CultureInfo.CurrentCulture, 
    "Unit STBi [{0}] blah... ", 
    unitStbiParameter.Stbi); 

構建我們的TFS構建服務器上失敗,像這樣的錯誤:

CA2204:Microsoft.Naming: 正確'STBi'中的無法識別的標記'STBi'的拼寫''單位STBi [''。

問題是,我不知道爲什麼我在我的筆記本電腦上構建解決方案時沒有看到這些CA錯誤。這是該項目的性質:

enter image description here

而生成定義具有這樣的:

enter image description here

爲什麼會錯誤從構建展示在構建機上,但不是我的筆記本電腦?這幾乎就像構建服務器正在使用不同的CA規則集。那可能嗎?

附註:我嘗試將STBi添加到CustomDictionary.xml(下面),但仍然沒有幫助。但這是一個單獨的問題。

<!-- This is here because it's a workaround for a bug: http://connect.microsoft.com/VisualStudio/feedback/details/521030/ --> 
<DiscreteExceptions> 
    <Term>STBi</Term> 
</DiscreteExceptions> 
+0

您是否嘗試在筆記本電腦上打開規則集並檢查「CA2204」的設置?另外,是否有可能您的筆記本電腦上有自定義字典,允許使用它? http://msdn.microsoft.com/en-us/library/bb514188.aspx –

+0

我的筆記本電腦上設置的規則啓用了CA2204。我有一個允許它的自定義字典,但不應該在TFS構建時使用相同的自定義字典嗎? –

+0

我認爲它應該......如果它是解決方案的一部分? –

回答

1

您是否在本地構建調試版並在構建服務器上發佈?如果是這樣,請檢查CA設置對於調試和發佈是否相同,並且您的字典在生成服務器上籤入並且相同。

我的團隊使用啓用了調試版本的CA,並且在生成服務器上禁用了。代碼分析簽入策略可以確保CA已經在源代碼管理中的所有代碼上運行,那麼是否有任何意見通過重複的代碼分析來降低服務器構建的速度?

+0

我在本地構建調試,並在構建服務器上進行調試和發佈。但它在構建服務器上作爲調試失敗,所以它不是調試/版本差異。 –

+0

Jason您是否可以提供有關如何設置代碼分析簽入策略的信息?我試圖爲我的團隊類似地設置代碼分析並遇到問題。 –

+0

恐怕我不記得太多了 - 這是5年前的事情,現在我工作的地方有所不同有一個CA政策,您只是啓用了,如果CA尚未運行,則檢入被拒絕來源。我不記得必須做任何聰明的事情來讓它工作。 –

相關問題