【问题标题】:Code Analysis Errors Only on Build Server仅在构建服务器上的代码分析错误
【发布时间】:2013-10-06 03:05:59
【问题描述】:

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

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

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

CA2204:微软命名: 更正文字中无法识别的标记“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>

【问题讨论】:

  • 您是否尝试打开笔记本电脑上的规则集并检查“CA2204”的设置?另外,您的笔记本电脑上是否有允许它的自定义字典? msdn.microsoft.com/en-us/library/bb514188.aspx
  • 我的笔记本电脑上设置的规则启用了 CA2204。我确实有一个允许它的自定义字典,但是在 TFS 构建时不应该使用相同的自定义字典吗?
  • 我认为应该...如果它是解决方案的一部分?

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我正在本地构建调试并在构建服务器上调试和发布。但它在构建服务器上作为调试失败,所以它不是调试/发布差异。
    • Jason 能否提供更多有关如何设置代码分析签入策略的信息?我正在尝试为我的团队设置类似的代码分析并遇到问题。
    • 恐怕我记不太清了 - 这是 5 年前的事了,现在我工作的地方已经不同了 有一个 CA 策略,您只是启用了,如果出现以下情况,签入被拒绝CA 尚未在源上运行。我不记得必须做任何聪明的事情才能让它工作。
    猜你喜欢
    • 2016-06-25
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    相关资源
    最近更新 更多