Сообщение об ошибке «Не найдено ни одного экспорта, соответствующего имени контракта ограничения»

1070

Сегодня утром я столкнулся с проблемой при открытии своего решения Visual Studio, и когда я попытался запустить его, он сказал:

Не найдено ни одного экспорта, соответствующего имени контракта ограничения

Как я могу решить эту проблему?

Саймон Б. Роберт
источник
4
Добро пожаловать, рады вытащить вас из этого раздражающего вопроса.
Саймон Б. Роберт,
3
Разве вы не должны публиковать свой ответ как ответ ниже? Таким образом, мы можем проголосовать, если это сработало для нас (что и сработало для меня) ;-)
Кеннет К.
7
У кого-нибудь есть идея относительно того, почему возникает эта проблема?
Patrickvacek

Ответы:

2160

Я решил эту проблему путем очистки кэша модели компонентов Visual Studio.

Просто удалите или переименуйте эту папку:

%LocalAppData%\Microsoft\VisualStudio\11.0\ComponentModelCache

или

%LocalAppData%\Microsoft\VPDExpress\11.0\ComponentModelCache

и перезапустите Visual Studio.

Версия Visual Studio, которую вы используете, определяется числом, например

Visual Studio 2012 11.0(как показано выше)

Visual Studio 2013 - это 12.0

Visual Studio 2015 - это 14.0

Visual Studio 2017 - это 15.0

Visual Studio 2019 является 16.0

Для тех, кто не знает: так %LocalAppData%\же, какC:\Users\{yourUsername}\AppData\Local

Для тех, у кого установлено несколько версий Visual Studio, например 2012 и 2013, может быть полезно удалить ComponentModelCache для обеих версий перед перезапуском Visual Studio, например, 11.0 и 12.0.

Саймон Б. Роберт
источник
16
У меня тоже работал, но для экспресс-версии VS Desktop Developer я нашел данные кеша в ... \ AppData \ Local \ Microsoft \ WDExpress
josiah
4
Я не могу открыть свои файлы C ++ после удаления всех в этой папке, когда я восстанавливаю эти файлы, кроме Microsoft.VisualStudio.Default.cache, затем снова открываю свое решение, затем все возвращается в нормальное состояние.
Скотт 理论 理论
2
Удаление файла Microsoft.VisualStudio.Default.cache решило проблему
Тим Валентин
1
@alexo, появляется для меня после установки .net 4.5.1 dev pack на 2012
mt_serg
4
Это расширение делает это автоматически для вас одним щелчком мыши (включая перезапуск VS): Clear MEF Component Cache visualstudiogallery.msdn.microsoft.com/...
KZU
150

Нет необходимости переименовывать или удалять всю папку:

(%AppData%\..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache)

Просто переименуйте или удалите Microsoft.VisualStudio.Default.cacheфайл в указанном выше месте.

Ананта Сундар Шреста
источник
если удалить все в этой папке, файл C ++ может не открыться.
Скотт 理论 理论
Это было спасение жизни. Спасибо Ананта.
Закир ХК,
73

Visual Studio Express 2012 имеет разные пути.

Visual Studio Express

  • ... \ Users \ {пользователь} \ AppData \ Local \ Microsoft \ WDExpress \ 11,0 \ ComponentModelCache

С Visual Studio Express 2012 для Интернета

  • ... \ Users \ {пользователь} \ AppData \ Local \ Microsoft \ VWDExpress \ 11,0 \ ComponentModelCache

Мне не пришлось переустанавливать Visual Studio Express

Они называют меня Троицей
источник
37

Это будет действительно работать как чемпион:

Решение: Попробуйте удалить папку ComponentModelCache из расположенного ниже.

[C:]\Users\[your user name]\AppData\Local\Microsoft\VisualStudio\[Visual Studio version number]

И после успешного удаления заново создайте папку с тем же именем «ComponentModelCache».

Хади Салехи
источник
это помогло мне, спасибо за подсказки
Arief
28

Удаление кэша компонентной модели у меня не сработало (ну, относительный каталог, указанный выше, не существовал на моей машине). Вместо этого я установил расширение для Visual Studio 2012 Express . Меню Инструменты → * Расширения и обновления ... ** → ОнлайнВыберите любой и затем загрузите. Это, очевидно, делает недействительным кеш, заставляя Visual Studio его перестраивать.

Вот мой источник .

Никола
источник
1
Visual Studio --EXPRESS-- находится в другом месте. Проверьте другие ответы в этой теме.
Pure.Krome
В моем случае это произошло после установки расширения xamarin в сообществе VS2015. после удаления все идет хорошо. Я убираю его в том же месте, что и в этом ответе. Инструменты> Расширения и обновления
Ricardo Figueiredo
28

Эта проблема может быть решена путем удаления или очистки всех папок и файлов из %AppData%\..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache

Это на самом деле очищает кэш модели компонентов Visual Studio.

На машинах с Windows 7 путь другой. При вводе %appdata%в диалоговом окне « Выполнить » открывается папка C:\Users\<username>\AppData\Roaming.

Нажмите кнопку «вверх», чтобы перейти к родительской папке и выбрать папку «Local».

Конечный путь: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\11.0\ComponentModelCache

myaseedk
источник
20

для Visual Studio 2012 и более поздних версий решением должно быть удаление содержимого папки ComponentModelCache:

C:\Users\[username]\AppData\Local\Microsoft\WDExpress\11.0\ComponentModelCache

Visual Studio 2013

C:\Users\[username]\AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache
Jorgesys
источник
20

Для Visual Studio 2013 вам нужно удалить эту папку из этого пути:

%AppData%\..\Local\Microsoft\VisualStudio\12.0
Арун Рана
источник
1
Я испытал это после того, как моя батарея закончилась, устанавливая довольно большое обновление xamarin для vs2013. Зайдя в эту папку, переименовал в ComponenetModelCache и после перезапуска заново создал папку и исправил. Тай
Дилан Хейс
Также работал для другой ошибки для меня:'visual c++ package' failed to load
JTIM
16

У меня возникла та же проблема при запуске Visual Studio 2013 Ultimate, и решения, которые здесь были, не сработали для меня. Я попытался удалить указанные папки и снова запустить Visual Studio, но это не сработало.

Однако у меня были и другие проблемы: например, пакет Microsoft.visual studio не загружался правильно, а также страница '312e8a59-2712-48a1-863e-0ef4e67961fc' не обнаружена в VS 2012 . Последнее относится к сообщению в окне Team Explorer, в котором говорится, что «страница« somenumber »не может быть найдена».

Поэтому я запускаю devenv /setupв командной строке Visual Studio с правами администратора. Он сделал свою работу, и теперь все в порядке.

jbarrameda
источник
Я удалял указанную папку (Win 8.1, VS 2013 Prem), и она возвращалась каждый раз, когда я закрывал и снова открывал VS. Это, к сожалению, тоже не сработало.
Bdwakefield
1
Попробовав несколько решений, я решил проблему. Поскольку командную строку VS для VS2013 нелегко найти, вот путь к ней: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ Shortcuts
Tarabass
devenv / setup исправил проблему сбоев в VS 2015 Pro для меня. ComponentModelCache не исправлял это.
Зак Грин
Вау - не ожидал, что это сработает, но это сработало! VS 2017 Community Edition.
Сколя
13

Удалите содержимое папки ComponentModelCache .

 %AppData%..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache
Али
источник
11

Очистка папок не работает для меня. Поэтому я перешел к пункту «Программы и компоненты» и использовал кнопку изменения для запуска установки Visual Studio 2013.

В настройках я выбираю функцию восстановления, и это решило проблему для меня.

C. Молендейк
источник
9

У меня была такая же проблема с Visual Studio Express 2013 из Windows 8.1.

К сожалению, в папке
% AppData% .. \ Local \ Microsoft \ VisualStudio \ 12.0 \ ComponentModelCache не было папки «ComponentModelCache» .

Я нашел папку «ComponentModelCache» в
.. \ Users [имя пользователя] \ AppData \ Local \ Microsoft \ WDExpress \ 12.0

и решил эту проблему, удалив эту папку оттуда.

Fose
источник
8

Если у вас VS 2013, вам нужно перейти по адресу : % LOCALAPPDATA% \ Microsoft \ VisualStudio \ 12.0 и переименовать папку ComponentModelCache.

Rouse02
источник
+1 для% LOCALAPPDATA%, я использовал% AppData% и не нашел ни одной папки, такой как ComponentModelCache. Но используя% LOCALAPPDATA%, я могу его получить.
Раджшекар Редди
7

Я столкнулся с подобной проблемой после некоторых обновлений, выпущенных от Microsoft (часть из них, где о .NET Framework 4.5).

В Интернете я получил следующую ссылку на статью базы знаний Microsoft:

Обновление для Microsoft Visual Studio 2012 (KB2781514)

Это сработало для меня.

Filippo
источник
1
+1 - Отличная находка! Это решило проблему для меня. Это законное решение вместо хакерского удаления файла кэша, что может иметь последствия в будущем.
Трэвис Дж
За исключением того, что эта проблема все еще существует в VS2015, поэтому вряд ли это будет «законное решение».
Нейл
6

Это случилось со мной в Visual Studio 2013 Web, после того как Windows установила несколько обновлений. К сожалению, ни одно из предложений в этой теме не помогло.

Пришлось перезапустить установщик и выбрать опцию «Ремонт». После этого (и перезагрузка) снова заработало.

В некоторых случаях вам может потребоваться восстановить несколько версий Visual Studio. Один из примеров - когда элемент управления «Задача сценария» в VS 2013 открывает VS 2012, когда вы нажимаете «Изменить сценарий».

easuter
источник
4

Переименование папки ComponentModelCache у меня работало в Visual Studio 2015, но с несколько другим путем:

%AppData%\..\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
Robotnicka
источник
3

У меня Windows 7 x64 со вторым разделом, на котором установлена ​​Windows 8 (предварительный просмотр установлен). Работая с Microsoft Visual Studio Express 2012 для Windows Phone, я столкнулся с той же проблемой. Но ComponentModelCache находится здесь:

C: \ Users \ Jayaram \ AppData \ Local \ Microsoft \ VPDExpress \ 11,0

Я не могу удалить или переименовать, когда я получаю сообщение «доступ запрещен», когда я пытаюсь использовать командную строку:

Администратор: VS2012 X64 CrossToolsCommandPrompt

user2063329
источник
3

Эта проблема из-за повреждения кэша MEF. Установка расширения обратной связи (или установка любого расширения) приведет к аннулированию кэша, в результате чего VS перестроит его.

нажмите для источника.

мии
источник
3

Я использую Visual Studio 2012. После установки веб-экспресса Visual Studio 2013, когда я хочу запустить или открыть какой-либо проект в Visual Studio 2012, появляется следующая ошибка:

« Никакого экспорта не было обнаружено , что совпадает с именем контракта ограничение» .

Я также попробовал вышеупомянутое решение для очистки ComponentModelCache , но я не нашел папку. Я решаю свою проблему просто: Ремонт Visual Studio 2012

Для версий программного обеспечения Express нужная папка находится в немного другом месте: для Express 2012 для Интернета она отсутствует, а C:\Users\XXXXXXXX\AppData\Local\Microsoft\VWDExpressне в папке Visual Studio.

Peter Mortensen
источник
1
это произошло для меня в 2013 году, когда я был единственным визуальным центром, установленным на моей машине, - ремонтировал, как вы упомянули через панель «удалить программу», и это было исправлено.
Дэйв Раэль,
Изначально я не нашел папку с помощью% AppData%, но с помощью% LOCALAPPDATA% я смог найти и найти папку
Rajshekar Reddy
бинго ,,,, это более точный ответ для меня
Рохит Бехера
2

Я столкнулся с этой проблемой в Microsoft Visual Studio Express 2012 для Windows Phone при попытке открыть файл.

Затем я просмотрел

C: \ Users \ MyUserName \ AppData \ Local \ Microsoft \ VPDExpress \ 11,0 \ ComponentModelCache

И внутри ComponentModelCache я удалил файл CACHE Microsoft.VisualStudio.Default.cache. Наконец я перезапустил визуальную студию и снова открыл свой проект.

Тогда моя проблема была решена, я смог открыть файл.

Примечание. Моя ОС - Windows 8. И я установил SDK 8 для разработки приложения для Windows Phone.

Спасибо

Rashedul.Rubel
источник
2

Я получил ошибку с тем же сообщением об ошибке - два года спустя. На этот раз это другая проблема, связанная с .NET Core dnx.

Я не смог найти ответ по переполнению стека, но есть проблема GitHub, которая содержит обходной путь: https://github.com/aspnet/Home/issues/1455

Ниже приведена наиболее важная часть обходного пути:

  • Удалить весь C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\DNXкаталог. (Насколько я понимаю, он относится к старой версии ASP.NET Core RC1, которая по некоторым причинам все еще поставляется даже с Visual Studio 2015 Update-3).
  • Удалить C:\Users\<user>\AppData\Local\Microsoft\VisualStudio\14.0\devenv.exe.configфайл.
  • Запустите командную строку разработчика для Visual Studio 2015 от имени администратора и выполните devenv /setupкоманду. Создается новый файл devenv.exe.config. На этот раз есть много сборок, которые ссылаются на C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\DotNetкаталог.
  • Запустите Visual Studio 2015 и убедитесь, что в нем отображаются основные инструменты Microsoft .NET (предварительный просмотр 2) 14.1.20624.0 в меню «Справка => О Microsoft Visual Studio».

Спасибо посту олегбурова на GitHub за это.

Мэтти
источник
1

Мне пришлось удалить некоторые внешние компоненты, такие как Postsharp и Apex, и тогда все заработало. Я также попробовал выбранное решение, но оно дало мне больше ошибок.

Revious
источник
1

Удаление папок не работает для меня, у меня есть панель управления и исправить

Visual Studio Installer Projects extensions for VS 2013.

И это сработало для меня

Vivekh
источник
0

Я получил эту ошибку после переустановки IntelliJ IDEA и ReSharper для C # в Visual Studio 2013.

Во-первых, у меня возникла проблема с расширениями, и после этого я получил эту ошибку:

«Не найдено экспорта, соответствующего названию контракта ограничения»

Я просто удалил папку ComponentModelCache и решил эту ошибку.

Игорь Левкивский
источник
0

Мои 2 цента: следуя всем приведенным выше советам по спасению жизни, у меня был немного другой опыт; у меня VS VS Community Edition, установленный один раз, и я заметил, что все эти 3 папки:

%LocalAppData%\Microsoft\VisualStudio\15.0 ==> Empty
%LocalAppData%\Microsoft\VisualStudio\7f0c75b0 ==> has only the CoreCon folder

Это тот, который имеет ComponentModelCache:

%LocalAppData%\Microsoft\VisualStudio\15.0_7f0c75b0

Удаление только Microsoft.VisualStudio.Default.cache не имело никакого эффекта.

Итак, я удалил все 4 файла: .cache, .err, .external и каталоги. При перезапуске VS проблема исчезла и появился 5-й файл:

Microsoft.VisualStudio.Default.scan
Марсело Скофано
источник
0

Удаление ComponentModelCacheне работает для меня. Переустановка VS 2019 произошла благодаря рекомендации по этой теме поддержки Microsoft.

подробности

  • Кажется, это известная ошибка с исправлением, поступающим от MS (по состоянию на 1/7/2020)
  • Опытный после обновления с VS2019 Pro 16.2 (я думаю, что это было?) До 16.4.2 с использованием установщика Visual Studio
  • Ошибка при попытке запустить консоль nuget и диспетчер пакетов nuget
w00ngy
источник