【问题标题】:TeamCity code inspection does not recognize AutoMapperTeamCity 代码检查无法识别 AutoMapper
【发布时间】:2014-02-12 21:28:42
【问题描述】:

我正在对 TeamCity 8.0.6 上的 C# 项目进行代码检查。检查目前返回超过 200 个编译器错误,所有这些都与 AutoMapper 映射配置定义有关。

在任何定义映射配置的地方,代码检查都会返回 C# 编译器错误和类似以下的消息:

Cannot resolve method 'ForMember(lambda expression, lambda expression)', candidates are...

ReSharper 和 AutoMapper 在我的本地环境中运行良好——代码检查运行时没有错误。只有在带有 TeamCity 的嵌入式代码检查插件的构建服务器上才会出现这些错误。

AutoMapper 和 ReSharper 代码检查之间的兼容性问题之前已记录在案,人们使用一些变通方法进行基于 VisualStudio 的检查。这里的不同之处在于,检查是使用 TeamCity 的嵌入式 ReSharper 版本而不是 VisualStudio 插件运行的。因此,许多修复(例如关闭和重新打开 VisualStudio 或禁用和重新启用 ReSharper 插件)都不适用。

有没有人在使用 TeamCity 的嵌入式 .NET 代码检查插件时遇到过类似问题,如果有,您是如何解决的?

作为记录,插件名称是 dotnet-tools,版本是 27767,它们在 TeamCity 8.0.6(撰写本文时的当前版本)下运行。我可以确认解决方案中只使用了一个版本的 AutoMapper DLL。

【问题讨论】:

  • 我已将服务器升级到8.1,插件版本已更改为29879。问题行为仍然存在。
  • 这似乎与此 TeamCity 错误有关:youtrack.jetbrains.com/issue/TW-33982 尚无可用修复。
  • 根据上面的youtrack链接,这个问题将在8.1.2版本中解决
  • 8.1.2 版没有解决这个问题。
  • 看起来在 8.1.5 中没有修复。

标签: c# resharper teamcity automapper


【解决方案1】:

解决此问题的唯一方法是升级。在我们将 TeamCity 升级到 8.1.5 后,此特定错误没有出现。这将插件版本更改为 30240,它可以处理 AutoMapper 配置而不会产生编译器错误。

构建服务器执行的检查与 Visual Studio 中运行的检查之间的结果仍然存在很大差异,但我不再看到 AutoMapper 配置生成的数百个编译器错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-16
    • 2017-11-19
    • 1970-01-01
    • 2022-10-22
    • 2020-10-13
    • 2012-03-06
    • 2014-09-21
    • 2015-07-12
    相关资源
    最近更新 更多