Automapper 3.0 - 此平台IMapperRegistry不支持此类型

nan*_*ano 38 automapper notsupportedexception automapper-3

我更新了我的项目以使用Automapper 3.0.0,现在我的TFS构建没有成功.错误如下:

" ... System.PlatformNotSupportedException:System.PlatformNotSupportedException:此平台上的IMapperRegistry不支持此类型. "

有没有人可以帮我解决这个问题.与此同时,我将恢复到以前的版本,因为那个似乎工作正常.

小智 38

我们的构建服务器上遇到了同样的问题.MsTest似乎删除了它认为不必要的DLL(请注意:这种说法只是一种有根据的猜测).要修复它,请在AutoMapper.Net4.dll中添加对某些内容的显式调用.例如,使用类ListSourceMapper:

var useless = new ListSourceMapper()
Run Code Online (Sandbox Code Playgroud)

将此添加到由所有其他项目共享的项目中为我们修复它.这行代码的位置可能会有所不同.


Jim*_*ard 28

确保在应用程序中向主应用程序中的AutoMapper和AutoMapper.Net4程序集添加引用(或添加NuGet包引用).Visual Studio在复制引用时遇到问题,它不会复制它认为没有使用的引用.

例如,如果您有项目: - 核心 - 用户界面

Core引用AutoMapper,确保在UI中添加引用以及BOTH程序集.NuGet会自动执行此操作,但MSBuild不会将所有引用从Core复制到UI.解决此问题的最简单方法是在UI中添加AutoMapper包引用.

  • 这看起来像两个程序集应该在AutoMapper构建中组合,因为我会收集很多人在"服务层"程序集中使用AutoMapper,而不是在他们的webproject中显示问题.这可能吗?我不是一个'参考纳粹',但需要在上游依赖项中添加自动化"未使用"似乎可能有更好的解决方案. (4认同)
  • 对我来说 - 我必须将Automapper安装到我的单元测试项目中,我的单元测试再次工作.HTH (3认同)
  • @ jimmy-bogard MsTest仍然无法使用此方法.我不得不在另一个答案中使用显式引用来使MsTest表现出来. (2认同)