Ошибка: ссылка на тип заявки определяется, но ее не удалось найти
У меня есть решение с тремя проектами:
- ParsersBase, которые определяют интерфейс IParseRule
- ParsersLibrary, которые имеют ссылку на ParsersBase и определяют класс HtmlImageUrlParseRule: IParseRule
- ParsersLibraryTest, которые имеют ссылку на ParsersBase и ParsersLibrary и определяют тестовый класс с некоторыми методами тестирования
Когда я пытаюсь его создать, я получаю предупреждение:
Ссылка на тип "AVSoft.ParsersBase.IParseRule" утверждает, что он определен в "c:\Users\Tim\Dropbox\projects\Image Downloader\ParsersLibrary\bin\Debug\ParsersLibrary.dll", но его не удалось найти
Почему VS пытается найти AVSoft.ParsersBase.IParseRule
в ParsersLibrary.dll? ParsersLibraryTest имеет ссылку на ParsersBase, это просто не имеет никакого смысла.
Ответы
Ответ 1
Это была моя ошибка, у меня был проект ParsersLibrary с самого начала, а затем переименован в ParsersBase, но я не переименовал имя сборки, а затем снова добавил проект ParsersLibrary.
Итак, у двух проектов было одно и то же имя сборки, и это не очень хорошо, не так ли?:) Ассембли перекрывают друг друга, поэтому у меня есть эта ошибка.
Ответ 2
У меня была аналогичная проблема. На сайте была запущена кэшированная версия dll, а не та, которую я развернул в каталоге bin. Я очистил временное содержимое папки asp.net, и это решило проблему.
Ответ 3
Еще один способ, который может произойти, - это использовать несколько пакетов NuGet, где один, возможно, центральный, пакет обновлен, но некоторые дополнительные пакеты функций не были.
Для работы с моим недавним примером - ошибка была "Ссылка на тип" ConsumerSubscriptionConfigurator < > "утверждает, что она определена в" MassTransit ", но ее не удалось найти". Это связано с тем, что мы обновили MassTransit от 2 до 3, но мы не обновили некоторые другие дополнительные пакеты (MassTransit.log4net и MassTransit.Autofac) к тому же номер версии. Похоже, что перенаправление сборки все работало, пока мы не попытались использовать еще одну дополнительную функцию.
Ответ 4
Я ударил это исключение сегодня. Проблема в моем случае заключалась в том, что у меня был some.package v2.1
установлен на моем хосте и some.package v2.3
, установленный в других проектах. Update-Package
в проекте хоста на v2.3
исправлена проблема.
Ответ 5
ParsersLibraryTest должен ссылаться на ParsersBase. Вторая часть ошибки должна выглядеть следующим образом: "Вы должны добавить ссылку на сборку" ParsersBase... "
Ответ 6
Эта ошибка, по-видимому, охватывает множество сценариев. В моем случае закрытие и повторное открытие Visual Studio было трюком. После перезапуска Visual Studio я смог построить проект, как ожидалось.