仅在Build Server上的代码分析错误

时间:2013-10-04 13:49:11

标签: c# visual-studio-2012 tfs2010 code-analysis

我正在试图弄清楚为什么代码分析会运行并检测构建服务器上的错误,但是在本地构建时我没有看到相同的错误。这是一个失败的代码示例(因为我们的STBi缩写):

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

我们的TFS构建服务器上的构建失败,错误如下:

  

CA2204:Microsoft.Naming:   更正文字中无法识别的标记“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>

2 个答案:

答案 0 :(得分:2)

您可能需要在项目中指定CodeAnalysisCulture MSBuild属性(有关示例,请参阅http://blogs.msdn.com/b/codeanalysis/archive/2007/08/12/new-for-visual-studio-2008-spelling-rules.aspx)。如果没有此设置,拼写规则将使用运行分析的帐户的Windows UI文化信息,这可能与您的帐户和构建帐户不同。

答案 1 :(得分:1)

您是在本地构建调试并在Build Server上发布吗?如果是这样,请检查调试和发布的CA设置是否相同,以及是否在构建服务器上检入了字典并且相同。

我的团队在构建服务器上使用CA启用调试版本并且CA 禁用。代码分析签入策略确保CA已在源代码管理中的所有代码上运行,因此,通过重复的代码分析过程减缓服务器构建是否有任何意义?