VS 2012 Intellisense сломан для внешних DLL

У меня есть проект Visual Studio 2012 со ссылкой на Sitecore DLL. (Sitecore является поставщиком.)

Несколько недель Intellisense работала нормально. Вчера, после установки обновлений Patch Tuesday и перезагрузки, Intellisense больше не работает для файлов библиотеки DLL Sitecore. Не знаю, есть ли переписка.

Intellisense по-прежнему работает для .NET Framework. Например, если я наберу строку внутри метода, я получу Intellisense.

В проекте есть ссылка на пространство имен Sitecore, определенное в разделе Ссылки в обозревателе решений. В частности, это ссылка Sitecore.Kernel, а источником ее является Sitecore.Kernel.dll.

Если я щелкну правой кнопкой мыши Sitecore.Kernel в разделе Ссылки и выберу Просмотр в обозревателе объектов, я смогу легко просмотреть DLL. Кроме того, мой проект строится нормально; в проекте есть несколько операторов using, ссылающихся на части пространства имен Sitecore. *, и он использует объекты в этих пространствах имен.

Если я наберу using Site и нажму Ctrl-пробел, я увижу, что Intellisense предлагает {} Sitecore, но все, что он показывает, это следующее:

Intellisense после ввода

Если я попытаюсь использовать Intellisense для любого объекта в пространстве имен Sitecore, я не получу предложений Intellisense.

Предложения в других областях не работают. Например:

  • Правка> IntelliSense> Обновить локальный кэш: параметр Обновить локальный кеш отсутствует. Да, у меня был открытый файл CS, и я редактировал его тогда.
  • Удалите% AppData% \ Roaming \ Microsoft \ VisualStudio \ 11.0 \ ReflectedSchemas: там нет папки ReflectedSchemas.
  • ИНСТРУМЕНТЫ> Настройки импорта и экспорта> Сбросить все настройки: не удалось вернуть Intellisense для внешних устройств.
  • В командной строке Visual Studio запустите devenv / resetuserdata: похоже, сделано что-то похожее на предыдущую технику. Не повлиял на Intellisense.
  • Установите флажок ИНСТРУМЕНТЫ> Параметры> Текстовый редактор> C #: проверяются как Автоматические элементы списка, так и Информация о параметрах. Я думаю, что в любом случае они были бы сброшены двумя предыдущими шагами.
  • С помощью установщика VS 2012 (Панель управления> Удаление программы) восстановите всю установку VS. Не повлияло.
  • Удалите и снова добавьте Sitecore.Kernel в раздел «Ссылки». Не повлияло.

Вот где это становится действительно странным: если я открываю этот проект удаленно с другой рабочей станции, на которой также установлен и перезагружен вчерашний Patch Tuesday, Intellisense работает нормально! Я имею в виду это, используя \ computername \ c $ ....

Я не знаю, что еще попробовать.


person Aren Cambre    schedule 09.01.2013    source источник
comment
Вы пытались удалить указанную DLL и снова добавить ее?   -  person Blachshma    schedule 09.01.2013
comment
Хорошо, это должно быть что-то с этим проектом. Я только что создал новый проект, и Intellisense работает нормально.   -  person Aren Cambre    schedule 10.01.2013


Ответы (2)


По непонятным мне причинам мне удалось вернуть Intellisense, создав новый проект и настроив его почти так же, как старый.

person Aren Cambre    schedule 09.01.2013
comment
Используют ли старые и новые проекты одну и ту же версию .net? - person Martin Davies; 02.08.2014
comment
Почти уверен, что они были, поскольку оба были проектами с нуля. Обратите внимание, что этот вопрос был задан 1,5 года назад, поэтому у меня больше нет проекта под рукой. :-) - person Aren Cambre; 04.08.2014

Вашему веб-проекту также потребуется несколько файлов конфигурации Sitecore в папке App_Config в каталоге проекта. (Не обязательно входит в проект).

Я писал об этом здесь: -

http://www.seanholmesby.com/fixing-visual-studio-intellisense-in-sitecore-mvc-views/

person Sean Holmesby    schedule 01.08.2014
comment
Не для вложенного макета Sitecore, отличного от MVC, как в моем случае. Вероятно, вы не захотите включать app_config в проект, поскольку это может вызвать конфликты при слиянии с продуктом Sitecore. - person Aren Cambre; 01.08.2014
comment
Да, это была моя точка зрения, что мне не нужно было включать это в проект. Вы все еще можете иметь его в файловой системе в каталоге проекта, но его отсутствие в проекте означает, что он не будет отправлен в ваш экземпляр Sitecore при публикации / TDS-build. - person Sean Holmesby; 01.08.2014
comment
Понятно. Но если он не включен в ваш проект, он, вероятно, не повлияет на Intellisense. :-) - person Aren Cambre; 02.08.2014
comment
Я тоже так думал, но поскольку Web.Config Sitecore находится в проекте и включает другие пути, он должен разрешить их таким образом. Также в своем сообщении я написал о том, чтобы включить их в проект, но заставить TDS игнорировать их во время развертывания ... это еще один вариант. - person Sean Holmesby; 02.08.2014
comment
Почти для всех моих проектов Sitecore у меня нет файлов Sitecore или ссылок, кроме ссылки на Sitecore.Kernel.dll. - person Aren Cambre; 04.08.2014