Ошибка сборки Visual Studio: утверждает, что член класса в другой сборке не существует - PullRequest
1 голос
/ 21 июля 2010

У меня есть решение для веб-сайта, содержащее проект с классами домена.

Я добавил общедоступное свойство auto (get; set;) к одному из классов домена.Страница на веб-сайте ссылается на это свойство - оно было добавлено на страницу с помощью IntelliSense.

Проект сайта работает нормально.Но когда я строю решение, я получаю старую ошибку «Класс не содержит определения свойства».Однако, если я щелкну правой кнопкой мыши на свойстве в файле aspx.cs, я получу право на объявление в классе домена.

Другой проект веб-сайта в решении может вызвать это свойство класса без ошибок..

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

Похоже, Visual Studio имеет здесь какой-то странный эпизод.

Есть предложения, что может быть не так?

Спасибо

Дэвид

Редактировать: Вот некоторые дополнительные наблюдения в серии шагов.

  1. Чистое решение (говорит 14 успешно; там16 проектов находятся в решении)
  2. Решение для сборки (говорит 16 успешно)
  3. Перестроить решение (с ошибками, как описано)
  4. Решение для сборки (с ошибками, как описано)

Веб-сайт на самом деле не работает - он всегда выдает ошибку.

Похоже, что он успешно прекомпилируется.

Редактировать 2: Я удалил ссылку на проект и повторнодобавил, но проблема остается.

Изменить 3: Я добавил новый проект веб-сайта в решение и скопировал все файлы с существующего веб-сайта на новый веб-сайт.Проблема существует как на новом веб-сайте, так и на существующем.

Ответы [ 4 ]

0 голосов
/ 22 июля 2010

Хорошо, проблема была в том, что используемый мной класс (который, как сообщается, не содержал определенного свойства) называется Case. Несмотря на предполагаемую чувствительность к регистру в C #, предположительно, это каким-то образом конфликтует с зарезервированным словом 'case', и это вызвало проблему во время компиляции.

Полное определение имени класса решило проблему, но я думаю, что я мог бы просто переименовать класс в ProbateCase.

Я должен сказать, что это явно ошибка в процессе компиляции Visual Studio. Не только «Case» не равно «case» в c #, но и класс существует в моем решении около полутора лет, и эта проблема никогда не возникала раньше. Другие проекты могут свободно использовать класс без указания его имени.

Ворчать. Жизнь продолжается.

0 голосов
/ 21 июля 2010

Может, немного поможет сброс IIS или пулов приложений?Кроме того, если сборка зарегистрирована в GAC, возможно, ее удаление и повторная установка могут помочь.

0 голосов
/ 21 июля 2010

Дважды проверьте Порядок сборки и / или Зависимости от проекта, который испытывает трудности с поиском собственности. Этот проект должен требовать, чтобы другие проекты строились первыми.

0 голосов
/ 21 июля 2010

Вы можете попробовать использовать System.IO.FileSystemWatcher или один из инструментов SysInternals , чтобы попытаться выяснить, имеет ли компилятор доступ к старой кэшированной копии вашей сборки где-то.

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