Пространство имен не распознано (хотя оно и есть) - PullRequest
134 голосов
/ 19 ноября 2010

Я получаю эту ошибку:

Не удалось найти тип или имя пространства имен 'AutoMapper' (отсутствует директива using или ссылка на сборку?)

Самое смешное, что в моем проекте уже есть ссылка:

ProjectThatFails

А это мой код:

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. Они оба работают отлично.

Вот снимок экрана одного:

ProjectThatWorks

и вот этот код (который прекрасно компилируется):

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

Кажется, что обе ссылки имеют одинаковые данные на странице свойств.

Чего мне не хватает?

Я пытался:

  1. Перезапуск Visual Studio
  2. Ссылка без использования оператора (т.е. AutoMapper.Mapper.CreateMap)
  3. Очистить и восстановить

Есть еще идеи?

Ответы [ 14 ]

1 голос
/ 21 сентября 2018

На этот вопрос уже был дан ответ для оригинального постера, но в случае, если кто-то сталкивается с этим в проекте MS-Test:

в Visual Studio, выберите меню «Тест» -> «Параметры теста» -> «Процессор по умолчанию».Архитектура и убедитесь, что архитектура соответствует архитектуре другой сборки, на которую вы ссылаетесь.Если другая сборка - x64, а ваши настройки теста - x86, у вас могут возникнуть симптомы, характерные для оригинального плаката.

1 голос
/ 19 сентября 2018

Сумасшедший.Я знаю.

Перепробовал все варианты здесь.Перезапуск, очистка, ручная проверка в сгенерированных библиотеках DLL (это неоценимо для понимания, если это действительно вы испортили).

Я запустил его, установив для параметра «Подробность» в MSBuild значение «Подробно» в параметрах.

1 голос
/ 21 августа 2018

В моем случае я получил ошибку только в VS 2015. При открытии проекта в VS 2017 ошибка пропала.

1 голос
/ 29 июля 2015

Я столкнулся с подобной проблемой, связанной с тем, что пространство имен / метод не было найдено во время выполнения, хотя это было нормально во время компиляции, и причина этого, по-видимому, в том, что сборка, на которую я ссылался, была развернута в GAC и с тех пор была изменена, поэтому, когдассылался на сборку в Visual Studion, которая использовала самую последнюю, но во время выполнения использовалась версия для GAC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...