Visual Studio не распознает новое свойство в библиотеке, размещенной на NuGet / BaGet, показывая ложные ошибки Intellisense - PullRequest
0 голосов
/ 03 мая 2020

Я разработал библиотеку, которая публикуется на BaGet и используется в одном из моих проектов. При расширении моделей в библиотеке я публикую sh в BaGet, а затем обновляю пакет в ссылочном проекте с помощью диспетчера пакетов VS NuGet. Иногда VS не распознает эти изменения в Intellisense.

Пример: я добавил поле модели AuthorUserName в проект библиотеки и опубликовал sh it:

public class VBLightForumThread {
    // Other fields
    public string AuthorUserName { get; set; }
}

После обновления новой библиотеки в моем проекте intellisense выдает ошибку при использовании свойства AuthorUserName:

enter image description here

Но обновление было применено. В случае представления Razor, я все еще мог начать отладку, и имя автора было показано в отрисовке HTML. Это может быть даже доказано в контроллере: VS показывает мне ошибку, которая обычно приводит к ошибке компиляции. Но я все равно могу скомпилировать и отладить. Во время отладки он показывает мне значение атрибута, хотя VS все еще также показывает ошибку, которой AuthorUserName не существует:

enter image description here

Так как это раздражает У меня много ложных ошибок в консоли ошибок VS: как я могу это исправить, чтобы VS показывал мне эти новые свойства в intellisense вместо выдачи ошибок?

Я уже пытался безуспешно:

  • Очистка решения
  • Пересборка решения
  • Перезапуск Visual Studio

Моя установленная версия Visual Studio 2019 Community 16.5.4. Единственное, что помогло временному обновлению VS. В ситуации выше с ложной ошибкой я заметил обновление VS. После обновления ошибка пропала. Но теперь я расширил модель библиотеки, и ошибка все еще там. Таким образом, это не исправлено обновлением, но кажется, что VS имеет какой-то кэш Intellisense, который был очищен обновлением.

1 Ответ

1 голос
/ 03 мая 2020

В качестве обходного пути помогло закрыть VS, затем удалить папку DesignTimeBuild в <ProjectName>/.vs/<ProjectName> и снова открыть VS. Прошло некоторое время и ошибки исчезли.

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

...