Когда я добавляю ссылку на мою dll в проекте Visual Studio, я могу ее использовать, но когда я компилирую свой код или пытаюсь запустить его, я получаю , если вам не хватает директивы using или сборки ссылка? _ Ошибка. Я могу подтвердить, что у меня есть правильный оператор using для моего пространства имен, и я могу подтвердить, что dll правильно загружена. Кто-нибудь может понять, что у меня может быть не так?
Visual Studio 2010 - вам не хватает директивы использования или ссылки на сборку?
Ответ 1
Перейдите к настройкам проекта и убедитесь, что вы не компилируете проект для .net-версии, которая включает в себя текст "профиль клиента".
Ответ 2
У меня просто была проблема точно так, даже если это старый вопрос, я думал, что добавлю свой 2c на то, что исправлено, поскольку ни один из других ответов не помог:
По какой-то причине, когда я построил решение сверху вниз, некоторая DLL не обновлялась и не выводила на экран измененный код. Поэтому, когда у моего решения не было видимых ошибок, когда вы пытались построить, он все еще ссылался на старую dll и начал жаловаться.
Это был просто случай прямого воссоздания злоумышленного проекта, после чего он взял последнюю dll и построил счастливо.
Это казалось несчастным случаем, поскольку никакая конфигурация не изменилась между тем, когда он работал/когда это не было.
Ответ 3
Иногда, ТОЛЬКО РЕЗЕРВУРА РЕШЕНИЯ.
Ответ 4
Местоположение DLL важно.
Если вы добавите ссылку на свой локальный компьютер в DLL, которая находится за пределами вашего решения Visual Studio, она не обязательно будет скопирована в ваши файлы решений (в зависимости от типа решения/проекта).
Если это ваша проблема, вам нужно либо поместить DLL в один путь на другом компьютере, либо скопировать его в свое решение, чтобы оно развернулось вместе с файлами решения и изменило ссылку.
Вы также можете обрабатывать это с помощью инструкций по сборке, но в настоящий момент это может быть за пределами ваших устремлений.
Ответ 5
Скорее всего, ваша dll ссылается на другую dll, которую клиентский проект не ссылается, и ваш код dll выставляет тип или интерфейс из 3-й dll в код клиента.
Если вы опубликуете сообщение exaCt, мы сможем помочь лучше.
Ответ 6
Используете ли вы .net 4.0?
Если да, эта DLL, вероятно, не совместима с .net 4.0
Ответ 7
В моем случае основной проект (WinForm) был настроен Framework Target: FW 4.0 "профиль клиента". Я перехожу на FW 4.0 и отлично работаю!! В первый раз я смотрел в проектах, на которые ссылались, и они были в порядке, но основного проекта нет. Надеюсь, эта помощь. Спасибо.
Ответ 8
В моем случае эта ошибка компиляции прошла после добавления ссылки на Компоненты сборки BCL через контекстное меню "Управление пакетами NuGet" в проблемном проекте.
До: У меня был проект Main (консольное приложение), ссылающийся на проект A (библиотека классов). Проект A имел зависимость от компонентов сборки Microsoft BCL.
После: я начал рефакторинг, где я выделил несколько классов для отдельного проекта New. Это также зависело от A. Но ошибка компиляции возникла в проекте New, как если бы не было ссылки New → A (хотя Visual Studio не выделяла якобы не найденные интерфейсы и классы, перечисленные в списке ошибок компиляции).
Итак, я проверил зависимости проекта A и нашел там компоненты сборки BCL. После добавления в новые зависимости все работало нормально. Самое интересное, что Main сделал не содержать эту зависимость, и она не нуждалась в ней.
Надеюсь, что это поможет.
Ответ 9
Вам просто нужно снова проверить пространство имен этого файла класса... он будет работать