Ошибка Visual Studio «Ссылка на объект не указана для экземпляра объекта» после установки ASP.NET и Web Tools 2015

125

После установки ASP.NET и Web Tools 2015 (обновление RC1 1) я получаю следующую ошибку в проектах ASP.NET MVC 4 при открытии *.cshtmlфайлов:

Ссылка на объект не установлена ​​на экземпляр объекта

Введите описание изображения здесь

Я получаю такое же сообщение об ошибке, даже если запускаю новый проект ASP.NET MVC 4 и пытаюсь открыть там *.cshtmlфайл.

Я использую Visual Studio 2015

Карстен Корс
источник
1
Вы пробовали восстановить Visual Studio?
Silvermind
пока нет, но бегаю только ремонт. Посмотрим, что это принесет
Карстен Корс
иногда вам нужно просто перезапустить VS :).
Киен Чу
1
@fiorebat При RC2 у меня не было описанной здесь проблемы.
Carsten Cors
Закрытие VS, затем выполнение шага 1.1 и перезапуск устранили проблему для меня. Когда я впервые открыл свой тестовый проект, у меня было несколько ошибок, связанных с настройками, но он открылся. Спасибо.
NetHawk 02

Ответы:

196

Может это поможет:

  1. Удалите содержимое из следующих папок:
    1. C: \ Users \% USERPROFILE% \ AppData \ Local \ Microsoft \ VisualStudio
    2. C: \ Users \% USERPROFILE% \ AppData \ Local \ Microsoft \ VSCommon
  2. Иногда вам нужно перейти по адресу:
    1. [x64] C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE
    2. [x86] C: \ Program Files \ Microsoft Visual Studio 14.0 \ Common7 \ IDE

и беги devenv /resetuserdata.

Ожидайте, что все ваши пользовательские настройки, такие как макет Visual Studio, связанная учетная запись Microsoft или начальная страница, могут исчезнуть.

FKA
источник
6
Работал!! Однако я просто переименовал каталоги Visualstudio и VSCommon в VisualStudio_old и VSCommon_old. Нет необходимости запускать «devenv / resetuserdata»
Рэй
1
@DamianKobak - да, часто помогает, но только для конкретного решения. Когда что-то идет не так на каждом этапе проекта, ответ подходит лучше.
Фка
90
На самом деле достаточно удалить папку ComponentModelCache по пути C: \ Users \ {user} \ AppData \ Local \ Microsoft \ VisualStudio \ {версия - 14 или 12}. Вы можете оставить все остальное, и никакие настройки не потеряны ...
Том Бургер
1
Это применимо ко всем VS, потому что они отличаются только \Microsoft Visual Studio <THIS NUMBER>\Common7\IDE.
Fka 08
3
Убедитесь, что вы ЭКСПОРТИРУЕТЕ ВАШИ НАСТРОЙКИ, так как это сотрет их, и вам придется импортировать их позже. Это просто исправило аналогичную ошибку для меня в VS2017, которая возникла после того, как я добавил поддержку C ++ через установщик. Обратите внимание, что удаление ComponentModelCache не помогло.
Rimmel
66

Удалите %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCacheи перезапустите Visual Studio.

В качестве альтернативы используйте расширение Clear MEF Component Cache .

Эдвард Брей
источник
15

Для меня,

  1. Я завершил процесс в диспетчере задач Windows: VsHub.exe .
  2. Перезапустил Visual Studio.

После этого все снова работает как шарм!

Hao
источник
Я поддержал ваш ответ, потому что он решает проблему «Ссылка на объект Null», но после этого у меня появилось новое исключение в Visual StudioThe operation is not completed, invalid pointer
Hakan Fıstık
7

Я решил это делать

run devenv /resetuserdata

на этом пути:

[x64] C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE

Я предполагаю, что в x86 он работает по такому пути:

[x86] C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE
Хосе Альфредо Герра Гомес
источник
1
Этот работает для меня, но, к сожалению, он сбрасывает многие вещи, включая Re # :(
Cătălin Rădoi
Я просто попробовал, и у меня это сработало. что насчет этого заставляет его работать?
Тайлерлинделл 03
5

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

  • Перезапустите Visual Studio

  • Попробуйте « Запуск от имени администратора» (щелкните правой кнопкой мыши Visual Studio и выберите «Запуск от имени администратора»)

  • Проверьте наличие обновлений для Visual Studio (загрузите и установите их, если они доступны)

  • Попробуйте открыть другое решение / проект

Если проблема не исчезнет, ​​вы можете попробовать следующие варианты:

  • Перезагрузите локальную машину

  • Попытка сбросить Visual Studio до системных значений по умолчанию (это можно сделать с помощью параметров в Visual Studio)

  • Попытка восстановить установку Visual Studio

coder771
источник
3

В надежде, что это сузит круг вопросов / поможет кому-то, я применил исследовательский подход. Что касается меня, я сначала переместил папку в C: \ Users \ {user} \ AppData \ Local \ Microsoft \ VisualStudio в Мои документы и позволил Visual Studio воссоздать ее, повторно запустив ее. Это устранило ошибки. Поэтому я возвращал все по одному и каждый раз перезапускал Visual Studio, пока не обнаружил виновных. Эти папки можно было вернуть обратно:

  • 1033 (заменил автоматически созданную копию старой)
  • Дизайнер (был в моей старой копии, изначально не воссоздавался, когда я повторно запускал VS, скопировал обратно)
  • Расширения (заменил автоматически созданную копию старой)
  • ImageLibrary (заменил автоматически созданную копию старой)
  • Уведомления (заменил автоматически сгенерированную копию старой)
  • STemplate (был в моей старой копии, изначально не воссоздавался, когда я повторно запускал VS, скопировал его обратно)
  • VTC (был в моей старой копии, изначально не воссоздавался, когда я повторно запускал VS, скопировал обратно)

Эти файлы можно было вернуть обратно / перезаписать автоматически сгенерированные:

  • ApplicationPrivateSettings (был в моей старой копии, изначально не воссоздавался при повторном запуске VS)
  • ApplicationPrivateSettings.lock (перезаписал автоматически сгенерированную копию старой)
  • vspdmc.lock (заменил автоматически созданную копию старой)

Эти файлы можно было переместить обратно. Каждый из них был в моей старой копии и изначально не создавался заново при повторном запуске VS:

  • .NETFramework, Version = v4.0, Set = Framework, Hash = C958D412.dat
  • .NETFramework, Version = v4.0, Set = RecentAssemblies, Hash = 0.dat
  • .NETFramework, Version = v4.5, Set = Extensions, Hash = 75EAE334.dat
  • .NETFramework, Version = v4.5, Set = Extensions, Hash = 497525A2.dat
  • .NETFramework, Version = v4.5, Set = Framework, Hash = 5AE9A175.dat
  • .NETFramework, Version = v4.5.2, Set = Extensions, Hash = 24CEEB0D.dat
  • .NETFramework, Version = v4.5.2, Set = Extensions, Hash = 72AE305.dat
  • .NETFramework, Version = v4.5.2, Set = Extensions, Hash = ADF899D7.dat
  • .NETFramework, Version = v4.5.2, Set = Framework, Hash = D8E943A2.dat

Это вызвало проблемы - удалите эти файлы и повторно запустите VS, чтобы он мог их воссоздать:

  • ComponentModelCache - когда я перезаписал содержимое этой папки моими старыми (4 файла: MS.VS.Default.cache, .catalogs, .err, .external), это дало мне все ошибки, которые я получал раньше о том, что не могу загружать пакеты при загрузке моего проекта и ошибка «Ссылка на объект не установлена ​​на экземпляр объекта» при попытке закрыть VS.
  • devenv.exe.config - то же, что и ComponentModelCache
  • .NETFramework, Version = v4.0, Set = Extensions, Hash = 6D09DECC.dat - вызывает вывод ошибки из языковой службы JavaScript с жалобой на отсутствующие файлы js
  • .NETFramework, Version = v4.0, Set = Extensions, Hash = 9951BC03.dat - вызывает вывод ошибки из языковой службы JavaScript с жалобой на отсутствие файлов js
  • .NETFramework, Version = v4.5.2, Set = RecentAssemblies, Hash = 0.dat - вызывает вывод ошибки из языковой службы JavaScript с жалобой на отсутствие файлов js

Это ошибки из последних файлов .NETFramework (которые я не получу, если не добавлю их обратно):

01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\libhelp.js' not found.
01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\sitetypesWeb.js' not found.
01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\domWeb.js' not found.
01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\underscorefilter.js' not found.
01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\showPlainComments.js' not found.

Мне может просто потребоваться переустановить / отремонтировать плагин языковой службы JavaScript, так что это может быть не связано. Но определенно devenv.exe.config и ComponentModelCache необходимо исправить, чтобы исправить ошибку «ссылка на объект не установлена ​​на экземпляр объекта».

vapcguy
источник
1
У меня возникла проблема при копировании и вставке в Visual Studio 2013, удаление папки ComponentModelCache у меня сработало.
Эдвард Комо
3

Для меня ASP.NET 5 пока не требуется, я удалил обновление, а затем переустановил ASP.NET 4.5. Это немного сложно:

  1. Удалено из панели управления «Microsoft ASP.NET 5 RC1 Update1». После этого вы больше не будете открывать проекты ASP.NET MVC.
  2. Затем я изменил установку «Microsoft Visual Studio Professional 2015», нажал «Изменить» и выбрал «Microsoft Web Developer Tools»

Больше не следите за уведомлениями об обновлении в Visual Studio 2015 !!!

fiorebat
источник
3

Попробовав первый ответ, я обнаружил, что вы также должны перезагрузить компьютер. Ошибка может быть частью проблемы с git, из-за которой перезагрузка компьютера будет сброшена.

Бретт Парсонс
источник
2

Я получал исключение каждый раз, когда пытался создать «новый» проект.

Мое решение было:

  1. Перейдите в меню ИнструментыРасширения и обновления.

  2. Проверьте ссылку «Обновления» ... Произошло обновление для Microsoft ASP.NET и веб-инструментов. Установите его.

Это исправило это для меня.

МОС
источник
К вашему сведению: у меня были разные ожидающие обновления; но аналогичным образом их установка решила проблему.
JohnLBevan
2

В моем случае (не обязательно решение для вас, но может быть полезно для кого-то) решение было:

  1. Перейдите в меню ИнструментыРасширения и обновления.

  2. Выберите Onlineвкладку на правой панели

  3. Найдите слова web tools, а затем выберите Microsoft ASP.NET and Web Toolsи установите его.

В моем случае этого не было на моем компьютере из-за большого количества операций восстановления для Visual Studio.

Хакан Фыстик
источник
1

Я получал это исключение каждый раз, когда создавал «новый» проект.

Мое решение было:

  • Перейти в меню Инструменты ? Расширения и обновления
  • Не проверяйте ссылку "Обновления" ... ищите "asp.net". Вышло обновление Microsoft ASP.NET и веб-инструментов. Получите его как AspNetWebFrameworksTools2015_KB3137909.exe и установите.

Это исправило это для меня.


К сожалению, я столкнулся с другим исключением:

«Исключение было выброшено целью вызова»

Я отключил FIPSпараметр Enabled DWORDvalue до нуля.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy]
Enabled=dword:00000000 And All fixed.
orign
источник
1

Перейдите в windows + R, введите% temp% и нажмите Enter. удалите временную папку и файлы, а затем попробуйте открыть те же

Мухамед
источник
0

Я боролся с этим все выходные. Но сделать это довольно просто. Я просто нажал на ремонт, а не на удаление. После ремонта я нажал на перезагрузку напрямую. После этого все работает отлично. Вы должны попробовать это, может быть, это сработает и для вас !!!

nshuti88
источник
0

Перезапуск Visual Studio сделал это за меня. При следующем запуске он отобразил «Сканирование новых и обновленных компонентов MEF ...», а затем он запустился нормально.

Кажется, это как-то связано с обновлением Windows, хотя у меня нет доказательств.

Кристиан Амари
источник
0

Удалите папки bin и obj во всех проектах этого решения.

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

Джей Шах
источник
0

Решение проблемы, когда у меня было это ранее сегодня, заключалось в том, что к концу моего Web.config был прикреплен дополнительный набор тегов. После удаления функциональность вернулась.

Icementhols
источник
0

Я получал аналогичную ошибку в VS2017 при попытке опубликовать свое решение в Azure.

Этот алгоритм помог мне решить эту проблему:

  1. Закрыть VS2017
  2. Откройте папку C: \ Users {ваше имя пользователя} \ AppData \ Local \ Microsoft \ VisualStudio \
  3. Переименуйте папку 15.0_08edcd83
  4. Запустить VS
  5. Публикация работает нормально!

Обратите внимание, что это приведет к удалению последних файлов / проектов вашей Visual Studio из истории, а также привязке к учетной записи MS.

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

greenwd
источник
-1

Проблема: мой VS 2015 выдает ошибку после установки SSDT. Всякий раз, когда я нажимал «Инструменты >> Расширения и обновления», он выдавал ошибку «Ссылка на объект не установлена ​​на экземпляр объекта». Когда я попытался открыть решение, он выбросил некорректно установленный поставщик.

Решение: после многих часов исследований попытка всех решений, ранее упомянутых другими, не решила мою проблему. Каждый раз, когда всплывающее окно с ошибкой указывало на проверку ActivityLog.xml. Но я игнорировал это. После нескольких часов разочарования я решил внимательно прочитать ошибку, заглянул в ActivitLog.xml и обнаружил, что он ищет «Не удалось загрузить файл или сборку System.Collections.Immutable, Version = 1.1.37.0» . Я только начал искать эту сборку и наткнулся на эту ссылку https://sergeytihon.com/2015/12/01/how-to-restore-viual-studio-2015-after-update-1-dependency-dance/ и выполнили шаги, которые устранили мою проблему.

Зашел в% LOCALAPPDATA% / Local \ Microsoft \ VisualStudio \ 14.0 \ devenv.exe.config и искал "System.Collections.Immutable" и изменил newVersion с 1.1.36.0 на 1.1.37.0

Окончательная конфигурация должна выглядеть так

<dependentAssembly>
 <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
 <bindingRedirect oldVersion="1.0.27.0-1.1.65535.65535" newVersion="1.1.37.0"/>
</dependentAssembly>
Джозеф Авраам
источник