我得到了这个错误:
未能找到类型或命名空间名称“AutoMapper”(是否缺少
指令或程序集引用?)
有趣的是,我的项目中已经有了这个引用:
这是我的代码:
using System.Collections.Generic;
using DataContract;
using SelectorDAL;
using AutoMapper;
namespace SpecimenSelect
{
public class SpecimenSelect : ISpecimenSelect
{
public SpecimenSelect()
{
SetupMaps();
}
private static void SetupMaps()
{
Mapper.CreateMap<SpecimenDetail, SpecimenDetailContract>();
}
另一件奇怪的事情是,我的解决方案中还有另外两个项目,它们都使用AutoMapper并引用完全相同的AutoMapper.dll文件。它们都工作得很好。
以下是其中之一的屏幕截图:
下面是代码(可以很好地编译):
using System.Collections.Generic;
using AutoMapper;
using DataContract;
using SelectorDAL;
namespace PatientSelect
{
public class PatientSelect : IPatientSelect
{
public PatientSelect()
{
SetupMaps();
}
private void SetupMaps()
{
Mapper.CreateMap<Patient, PatientContract>();
Mapper.CreateMap<OrderedTest, OrderedTestsContract>();
Mapper.CreateMap<Gender, GenderContract>();
}
这两个引用在属性页上似乎具有相同的数据。
我遗漏了什么?
我试过了:
在不使用using语句的情况下重新启动Visual Studio
AutoMapper.Mapper.CreateMap
)
还有其他想法吗?
发布于 2010-11-20 04:15:19
检查以确保您的项目未设置为使用.NET Framework4客户端配置文件。
您可以通过右键单击您的项目(而不是解决方案),选择属性 -> 应用程序 -> 框架来检查/更改这一点。目标框架是该页面上的下拉列表。
这是Visual Studio中的一个问题(我甚至可以称之为bug)。AutoMapper需要从.NET Framework4客户端配置文件中排除的程序集。由于您的项目使用的是该版本的框架,因此它会中断。
当您引用的项目的.NET框架版本高于进行引用的项目时,将在生成过程中传播类似的错误。例如,一个目标为4.5的项目引用了一个目标为4.5.1的项目,也会给出同样的错误。
当这种情况发生时,需要一个更好的错误消息,因为没有合理的解释来解释为什么它不会生成,因为错误消息告诉你引用一个你已经明确引用的程序集。
发布于 2010-11-20 04:16:49
让我问一个愚蠢的问题:可能有两个automapper.dll文件吗?一个有AutoMapper
名称空间,另一个没有?确认两个项目中的路径。
我还注意到using
命令的顺序不同。这应该无关紧要,但你有没有试过给他们洗牌呢?
发布于 2018-08-29 20:40:06
如果所有其他答案都不能帮助您,这将是最简单的解决方案
我在答案中寻找我的设置出了什么问题,尝试了所有的答案-没有一个有效,然后我意识到微软Visual Studio2018是由开发的。所以我做了大多数人都做的事,
重新启动了Visual Studio,并且工作正常
https://stackoverflow.com/questions/4228992
复制相似问题