命名空间无法识别(即使它在那里)

编程入门 行业动态 更新时间:2024-10-25 14:28:37
本文介绍了命名空间无法识别(即使它在那里)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我收到此错误:

找不到类型或命名空间名称AutoMapper"(您是否缺少 using 指令或程序集引用?)

The type or namespace name 'AutoMapper' could not be found (are you missing a using directive or an assembly reference?)

有趣的是,我的项目中已经有了该引用:

The funny thing is that I have that reference in my project already:

这是我的代码:

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 文件.他们都工作得很好.

The other weird thing is that I have two other projects in my solution that both use AutoMapper and are referencing the exact same AutoMapper.dll file. They both work perfectly fine.

这是一个屏幕截图:

这是代码(编译良好):

and here is that code (that compiles fine):

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>(); }

两个引用在属性页面上似乎具有相同的数据.

Both references seem to have the same data on the properties page.

我错过了什么?

我试过了:

  • 重新启动 Visual Studio
  • 不使用 using 语句的引用(即 AutoMapper.Mapper.CreateMap)
  • 清理和重建
  • 还有其他想法吗?

    推荐答案

    检查以确保您的项目未设置为使用 .NET Framework 4 Client Profile.

    Check to make sure that your project isn't set up to use the .NET Framework 4 Client Profile.

    您可以通过右键单击您的项目(不是解决方案)来检查/更改此设置,选择属性 -> 应用程序 -> 目标框架.目标框架是该页面上的下拉列表.

    You can check/change this by right-clicking your project (not the solution), select Properties -> Application -> Target framework. The target framework is a dropdown on that page.

    这是 Visual Studio 中的一个问题(我什至将其称为错误).AutoMapper 需要从 .NET Framework 4 Client Profile 中排除的程序集.由于您的项目正在使用该版本的框架,因此它会中断.

    This is a problem in Visual Studio (I would even go so far as to call it a bug). AutoMapper requires assemblies that are excluded from the .NET Framework 4 Client Profile. Since your project is using that version of the framework it breaks.

    当您引用的项目的 .NET Framework 版本高于进行引用的项目时,类似的错误将传播到构建过程.即,一个面向 4.5 的项目引用了一个面向 4.5.1 的项目会给你同样的错误.

    A similar error will propagate to the build process when the .NET Framework version for the project you are referencing is higher than the project making the reference. i.e. A project targeting 4.5 that references a project targeting 4.5.1 will give you this same error.

    发生这种情况时需要有更好的错误消息,因为没有合理解释为什么它不会构建,因为错误消息告诉您要引用已明确引用的程序集.

    There needs to be a better error message when this happens because there is no rational explanation as to why it would not build as the error message tells you to reference an assembly you have clearly referenced.

    更多推荐

    命名空间无法识别(即使它在那里)

    本文发布于:2023-10-18 12:18:34,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1504211.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:它在   无法识别   空间

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!