Повідомлення про помилку "Не знайдено жодного експорту, який би відповідав назві договору про обмеження"


1069

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

Не знайдено жодного експорту, який би відповідав назві договору про обмеження

Як я можу виправити цю проблему?


4
Запрошуємо вас із задоволенням вийти з цього прикрого питання.
Simon B.Robert

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 vs 2012
mt_serg

4
Це розширення робить це автоматично для вас одним клацанням (включаючи перезапуск VS): Очистити кеш MEF компонентів 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

  • ... \ Користувачі \ {user} \ AppData \ Local \ Microsoft \ WDExpress \ 11.0 \ ComponentModelCache

З Visual Studio Express 2012 для Інтернету

  • ... \ Користувачі \ {user} \ 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".


це мені допомогло, дякую за поради
Короткий

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%в Run діалогу, він відкриває папку C:\Users\<username>\AppData\Roaming.

Натисніть кнопку "вгору", щоб перейти до батьківської папки та виберіть папку "Місцевий".

Кінцевий шлях: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\11.0\ComponentModelCache


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

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 не завантажувався коректно, а також не знайдено сторінку VS-2012 (312e8a59-2712-48a1-863e-0ef4e67961fc) . Останнє посилається на повідомлення у вікні Team Explorer про те, що "Сторінку" неможливо знайти ".

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


Я видаляв вказану папку (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
scolja

13

Видаліть вміст папки ComponentModelCache .

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

11

Очищення папок у мене не вийшло. Тому я перейшов до програми "Програми та функції" і застосував кнопку зміни для запуску налаштування Visual Studio 2013.

У налаштуванні я вибираю функцію відновлення, і це вирішило для мене проблему.


9

У мене була така ж проблема з Visual Studio Express 2013 під Windows 8.1.

На жаль, у
% AppData% .. \ Local \ Microsoft \ VisualStudio \ 12.0 \ ComponentModelCache не було папки "ComponentModelCache" .

Я знайшов папку "ComponentModelCache" у
.. \ Користувачі [ім'я користувача] \ AppData \ Local \ Microsoft \ WDExpress \ 12.0

і вирішили цю проблему, видаливши звідти цю папку.


8

Якщо у вас VS 2013, вам потрібно перейти до: % LOCALAPPDATA% \ Microsoft \ VisualStudio \ 12.0, а потім перейменувати папку ComponentModelCache.


+1 для% LOCALAPPDATA%, я використовував% AppData% і не знайшов жодної папки, як ComponentModelCache. Але використовуючи% LOCALAPPDATA%, я можу це отримати.
Райджекар Редді

7

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

В Інтернеті я отримав таке посилання на статтю бази знань Майкрософт:

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

Це працювало для мене.


1
+1 - Чудова знахідка! Це вирішило для мене проблему. Це легітимне рішення замість хакерського видалення файлу кешу, що може мати наслідки в майбутньому.
Travis J

За винятком того, що ця проблема все ще існує у VS2015, тому це навряд чи буде «законним рішенням».
Ніл

6

Це сталося зі мною із Visual Studio 2013 Web, після того, як Windows встановила кілька оновлень. На жаль, жодна пропозиція в цій темі не допомогла.

Мені довелося запустити інсталятор і вибрати варіант «Ремонт». Після цього (і перезавантаження) він працював ще раз.

У деяких випадках вам може знадобитися відремонтувати більше однієї версії Visual Studio. Одним із прикладів є те, коли елемент управління завданнями сценарію в VS 2013 відкриває VS 2012, коли ви натискаєте Редагувати сценарій.


4

Перейменування папки ComponentModelCache працювало для мене у Visual Studio 2015, але трохи іншим шляхом:

%AppData%\..\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

3

У мене Windows 7 x64 з другим розділом, на якому встановлена ​​Windows 8 (попередній перегляд встановлений). Під час роботи з Microsoft Visual Studio Express 2012 для Windows Phone я зіткнувся з тією ж проблемою. Але ComponentModelCache можна знайти тут:

C: \ Користувачі \ Jayaram \ AppData \ Local \ Microsoft \ VPDExpress \ 11.0

Я не можу видалити або перейменувати, коли отримую повідомлення "доступ заборонено", коли я намагаюся використовувати командний рядок:

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


3

Це питання пов’язано з корупцією кешу MEF. Встановлення розширення зворотного зв’язку (або встановлення будь-якого розширення) призведе до недійсності кешу, що призведе до відновлення VS.

натисніть на джерело.


3

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

" не знайдено жодного експорту, який би відповідав назві договору про обмеження" .

Я також спробував вищевказане рішення для очищення ComponentModelCache , але папки я не знайшов. Я вирішую свою проблему лише за допомогою: Repair Visual Studio 2012

Для версій Express програмне забезпечення потрібна вам папка знаходиться в дещо іншому місці: Для Express 2012 для Web це C:\Users\XXXXXXXX\AppData\Local\Microsoft\VWDExpress- не в папці Visual Studio.


1
це сталося зі мною в 2013 році, коли єдина візуальна студія, встановлена ​​на моїй машині - зробила ремонт, як ви згадали за допомогою панелі "Видалити програму", і це було виправлено.
Дейв Реель

Я не знайшов папку занадто спочатку, використовуючи% AppData%, але, використовуючи% LOCALAPPDATA%, я міг навигати і знайти папку
Rajshekar Reddy,

Бінго ,,,, ця більш точна відповідь для мене
Rohit Behera

2

Я відчув цю проблему в Microsoft Visual Studio Express 2012 для Windows Phone під час спроби відкрити файл.

Потім я переглянув

C: \ Користувачі \ MyUserName \ AppData \ Local \ Microsoft \ VPDExpress \ 11.0 \ ComponentModelCache

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

Тоді моя проблема була вирішена, я зміг відкрити файл.

Примітка: Моя ОС - це Windows 8. І я встановив SDK 8 для розробки програми для телефонів Windows

Дякую


2

Я отримав помилку з тим же повідомленням про помилку - через два роки. Цього разу це вже інша проблема, що стосується речей dnx .NET Core.

Не вдалося знайти відповідь на переповнення стека, але є проблема GitHub, яка містить вирішення: https://github.com/aspnet/Home/isissue/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 Core (попередній перегляд 2) 14.1.20624.0 в довідці => Про меню Microsoft Visual Studio.

Завдяки публікації olegburov на GitHub за те, що з'ясував це.


1

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


1

Видалення папок у мене не вийшло, я перейшов до панелі управління та відремонтував її

Visual Studio Installer Projects extensions for VS 2013.

І це працювало на мене


0

Я отримав цю помилку після перевстановлення IntelliJ IDEA та ReSharper для C # у Visual Studio 2013.

Спочатку у мене виникла проблема з розширеннями, а після цього я отримав цю помилку:

"Не знайдено жодного експорту, який би відповідав назві договору про обмеження"

Я просто видалив папку ComponentModelCache і усунув цю помилку.


0

Мої 2 копійки: Дотримуючись усіх вищезазначених порад щодо рятування, я мав дещо інший досвід; моє VS 2017 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 Installer
  • Помилка відображається при спробі запустити і консоль нугета, і керуючий пакунок
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.