2

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

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

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

CA2204:Microsoft.Naming:更正文字“Unit STBi [””中无法识别的标记“STBi”的拼写。

问题是我不知道为什么我在笔记本电脑上构建解决方案时没有看到这些 CA 错误。这是在项目的属性中:

在此处输入图像描述

构建定义是这样的:

在此处输入图像描述

为什么构建机器上的构建会显示错误,而不是我的笔记本电脑?几乎就像构建服务器使用不同的 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>
4

2 回答 2

2

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

于 2013-10-05T17:02:05.457 回答
1

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

我的团队使用在调试版本上启用的 CA ,而在构建服务器上禁用了 CA。代码分析签入策略确保 CA 已在源代码控制中的所有代码上运行,那么通过重复的代码分析通过减慢服务器构建是否有任何意义?

于 2013-10-05T19:05:59.433 回答