Подтвердить что ты не робот

Тип или пространство имен не могут быть найдены, когда ссылка существует

У меня есть приложение wpf, в котором я пытаюсь ссылаться на созданную библиотеку классов. Я добавил ссылку на .dll И я добавил оператор using в свой файл, и intellisense фактически видит новое пространство имен.

Затем в моем коде я могу создавать новые объекты классов в моей добавленной DLL файле. intellisense видит все методы ect..no проблемы, никаких ошибок.

когда я пытаюсь создать мое приложение wpf, все внезапное, что я получаю тип или пространство имен, не могут найти ошибку в моей добавленной dll.

Затем я получаю ошибки всякий раз, когда пытаюсь создать объекты из этой .dll.

Я не понимаю, что происходит. Почему он работает до того, как я построил, но когда я его создаю, он не знает, где это .dll, я ссылаюсь?

Также я перешел к той библиотеке классов, которую я пытаюсь добавить, и уверен, что она строит без ошибок.

4b9b3361

Ответ 1

Наиболее распространенной причиной этого является то, что ваш .DLL нацелен на полную платформу .NET Framework, но приложение WPF предназначено для профиля клиента.

Например, если ваша библиотека нацелена на .NET 3.5, убедитесь, что ваш WPF-приложение нацелен на полную среду .NET 3.5 или 4.0, а не на профиль клиента.

Ответ 2

Несколько соображений по этому вопросу, которые вы можете попробовать:

  • Убедитесь, что более низкая версия не вызывает сборку более высокой версии (например, проект .NET 3.5 не вызывает сборку .NET 4.0).

  • Очистить → Построить (или перестроить)

  • Вручную удалять папки bin/obj как для вызывающих, так и для вызывающих проектов. Это заставляет все строить - "жесткий" путь. Это может показаться излишним, но я работал пару раз.

  • Перезапустите VS - иногда просто нет объяснений.

  • Перезагрузка - когда ничего не работает, дайте ей перерыв и повторите попытку.

Ответ 3

Вы можете скопировать любые DLL файлы из другого проекта, два файла .dll. например: A.dll, A.pdb и переименуйте эти два файла в название проекта.

Затем вы можете восстановить этот проект.

Ответ 4

Если вы получаете это без DLL - просто файл кода проверьте, что он установлен для компиляции. В Visual Studio 2013 я продолжаю добавлять файлы кода, и он устанавливает действие сборки (находящееся в разделе "Дополнительно" свойств файла кода в "Содержимое", а не "Скомпилировать". Измените это.

Ответ 5

Иногда требуется явное присвоение имени сборки, содержащей пространство имен.

xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssembly"

Я не знаю, почему это иногда требуется.