TeamCity代码检查无法识别AutoMapper

问题描述:

我正在TeamCity 8.0.6上运行C#项目的代码检查。检查目前正在返回超过200个编译器错误,所有这些都与AutoMapper映射配置定义有关。TeamCity代码检查无法识别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。

+0

我已将服务器升级到8.1,插件版本更改为29879.问题行为依然存在。 – kiprainey

+0

这似乎与此TeamCity错误有关: http://youtrack.jetbrains.com/issue/TW-33982 尚无任何修复程序可用。 – kiprainey

+0

根据上面的youtrack链接,这个问题将在版本8.1.2中得到解决 – kiprainey

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

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