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脚本 。