Проект VS не компилируется: свойство не является членом указанной библиотеки DLL - PullRequest
0 голосов
/ 28 августа 2010

Когда я пытаюсь скомпилировать свой веб-проект на VB.NET, я получаю сообщение об ошибке:

[PropertyName] is not a member of '[Namespace.Class]' 

Указанный класс является частью библиотеки, на которую ссылается проект. Свойство определенно существует в ссылочном классе, и его модификатор доступа - Public. Более того, если я обновлю ссылку или просто удалю ее и добавлю обратно, ошибка исчезнет: intellisense показывает мое свойство - все в порядке ... пока я не попытаюсь снова скомпилировать. Тогда ошибка возвращается. Я даже перезапустил Visual Studio безрезультатно. Что происходит?

[ОБНОВЛЕНО] После комментария Уилла я изменил пространство имен на то, что, я уверен, уникально. Теперь я получаю больше ошибок компиляции того же жанра. Компилятор не распознает некоторые из перегрузок, хотя они прямо здесь в intellisense. Weird!

Вот код, в котором я получил ошибку раньше:

Dim gis = New MapQuestGeocoder
Dim r = gis.GetResult(address)
originCoord = r.Coordinate

Свойство Coordinate не было распознано. Теперь ошибка «Ошибка разрешения перегрузки ...» возникает в другом классе, во второй строке ниже:

Dim gis = New MapQuestDirections()
Dim route = gis.GetResult(originAddress, address)

И MapQuestGeocoder, и MapQuestDirections находятся в одной и той же dll, в одном пространстве имен: Kosh.Geo

1 Ответ

0 голосов
/ 28 августа 2010

Хорошо, я понял, что вторая ошибка произошла, потому что в каталоге bin сохранились и старая сборка, и новая, которую я назвал по-разному, чтобы соответствовать новому пространству имен.Я делаю вывод, что старая dll была там даже после того, как я удалила ссылку, потому что другая dll в моем проекте зависит от той же самой сборки Geo.Я думаю, что это могло ускорить первоначальную ошибку, потому что Geo сборки вышли из синхронизации.

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