Automapper 3.0 – 此平台不支持此平台IMapperRegistry

我更新我的项目使用Automapper 3.0.0 ,现在我的TFS构build不成功。 错误如下:

… System.PlatformNotSupportedException:System.PlatformNotSupportedException:此types在此平台IMapperRegistry上不受支持。

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

我们在构build服务器上遇到同样的问题。 MsTest似乎删除它认为不必要的DLL(注意:这个说法只是一个有教养的猜测)。 要解决这个问题,请在AutoMapper.Net4.dll中添加一个明确的调用。 例如,用类ListSourceMapper:

var useless = new ListSourceMapper() 

把这个添加到一个由所有其他项目共享的项目中。 这行代码放在哪里可能会有所不同。

确保你的应用程序中添加了一个引用(或者添加一个NuGet包引用)到主应用程序中的AutoMapper和AutoMapper.Net4程序集。 Visual Studio有复制引用的问题,它不会复制它不认为正在使用的引用。

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

和核心引用AutoMapper,请确保您添加在UI中的引用以及两个程序集。 NuGet会自动执行此操作,但MSBuild不会将所有引用从Core复制到UI。 解决这个问题的最简单方法是简单地在UI中添加AutoMapper软件包引用。

我与我创build的一些mstest集成testing有同样的问题。

我build议在testing类中使用DeploymentItem属性,而不是代码中的直接引用。 例如,这是我所拥有的:

 [TestClass] [DeploymentItem("Unity.config")] [DeploymentItem("EntityFramework.SqlServer.dll")] **[DeploymentItem("AutoMapper.Net4.dll")]** public class MyFancyIntegrationTests { 

如上所述,还需要使用nuget将引用添加到testing项目中的automapper。

为了解决这个问题,查看你的mstest项目的bin目录。 如果在项目中引用了automapper,则应该同时看到Automapper.dll和AutoMapper.Net4.dll。 在将DemploymentItem属性添加到testing类之前,您不会在TestResults [MyLatestTestRun]文件夹中看到AutoMapper.Net4.dll。 但添加属性,你会的。

MSTest在注射方面效果不佳

更新到AutoMapper 3.1.1为我解决了这个问题

Update-Package AutoMapper -Version 3.1.1

我遇到同样的问题,使用Team City运行MSTEST,发现没有解决办法。

事实certificate,我需要使用Visual Studio Test Runner 。

我在这篇博文中发现了更多信息。

在Team City 8.1中,有一个VSTest.Consoletesting的构build步骤。

这对我有效。 我不需要在上面的博客中使用PowerShell脚本 。