Ссылочная DLL не найдена, потому что пространство имен VS неверно - PullRequest
2 голосов
/ 14 апреля 2011

У меня есть DLL, которая содержит общие типы и процедуры. Имя сборки и пространство имен совпадают:

MyCompany.Tools.Common

Я добавляю ссылку на эту DLL, а затем добавляю оператор using в файл, который хочет использовать тип из сборки:

using MyCompany.Tools.Common;

Затем я использую один из типов в другой сборке:

SafeInvoker.Invoke(this.pctBoxCLIP, delegate { this.pctBoxCLIP.Visible = value; });

Пока все хорошо, но когда я сейчас пытаюсь собрать сборку, Visual Studio жалуется, что:

"Имя типа или пространства имен ' Common ' не существует в Пространство имен ' MyCompany.Tools

Однако, если я посмотрю в Обозревателе объектов, я смогу увидеть пространство имен MyCompany.Tools.Common, все типы и т. Д.

Если я удаляю ссылку на DLL и добавляю ее снова, ошибка удаляется, пока я не попытаюсь снова собрать.

Есть идеи, что здесь происходит и как это решить?

Ответы [ 2 ]

1 голос
/ 27 апреля 2012

Просто решил точно такую ​​же проблему. У меня было одно решение, скомпилированное с .NET Framework 4 Client Profile, а другое - с .NET Framework 4 (Full).

После изменения обоих на полный фреймворк он начал работать.

0 голосов
/ 18 мая 2011

Звучит так, как будто каждый раз, когда вы строите свою dll, ее заменяют.У меня такое случилось со мной вчера на VS2010.Я удалил ссылку, удалил библиотеку из bin, добавил оба обратно, и это все еще происходило.Я удалил ссылку, удалил dll из папки bin, скопировал последнюю версию dll в новую директорию (отличную от той, на которую она ранее ссылалась) и сослался на нее из новой директории.Казалось, работать потом.Относительно того, почему это произошло, понятия не имею.

...