Komunikat o błędzie „Nie znaleziono eksportu odpowiadającego nazwie kontraktu z ograniczeniami”

1069

Dziś rano napotkałem problem podczas otwierania rozwiązania Visual Studio, a kiedy próbowałem go uruchomić, powiedział:

Nie znaleziono eksportu pasującego do nazwy kontraktu ograniczającego

Jak mogę rozwiązać ten problem?

Simon B.Robert
źródło
4
Nie ma za co, z radością wyciągnę cię z tego irytującego problemu.
Simon B.Robert
3
Czy nie powinieneś zamieszczać swojej odpowiedzi jako odpowiedzi poniżej? W ten sposób możemy go głosować, jeśli zadziałało dla nas (co dla mnie zadziałało) ;-)
Kenneth K.,
7
Czy ktoś ma pojęcie, dlaczego ten problem występuje?
patrickvacek

Odpowiedzi:

2160

Rozwiązałem ten problem, czyszcząc pamięć podręczną Visual Studio Component Model.

Wystarczy usunąć lub zmienić nazwę tego folderu:

%LocalAppData%\Microsoft\VisualStudio\11.0\ComponentModelCache

lub

%LocalAppData%\Microsoft\VPDExpress\11.0\ComponentModelCache

i uruchom ponownie Visual Studio.

Wersja programu Visual Studio, którą posiadasz, jest określona liczbą, np

Visual Studio 2012 jest 11.0(jak pokazano powyżej)

Visual Studio 2013 jest 12.0

Visual Studio 2015 jest 14.0

Visual Studio 2017 jest 15.0

Visual Studio 2019 jest 16.0

Dla tych, którzy nie wiedzą: %LocalAppData%\jest taki sam jakC:\Users\{yourUsername}\AppData\Local

Dla tych, którzy zainstalowali wiele wersji Visual Studio, np. 2012 i 2013, może pomóc usunąć ComponentModelCache dla obu wersji przed ponownym uruchomieniem Visual Studio, np. 11.0 i 12.0.

Simon B.Robert
źródło
16
Pracowałem też dla mnie, ale dla wersji ekspresowej VS Desktop Developer znalazłem dane pamięci podręcznej w ... \ AppData \ Local \ Microsoft \ WDExpress
josiah
4
nie mogę otworzyć moich plików c ++ po usunięciu wszystkich w tym folderze, gdy przywracam te pliki oprócz Microsoft.VisualStudio.Default.cache, a następnie ponownie otwieram moje rozwiązanie, a następnie wszystko wraca do normy.
Scott 理论 理论
2
Usunięcie pliku Microsoft.VisualStudio.Default.cache rozwiązało problem
Tim Valentine
1
@alexo, pojawia się dla mnie po zainstalowaniu pakietu
deweloperskiego
4
To rozszerzenie robi to automatycznie za jednym kliknięciem (w tym ponowne uruchomienie VS): Wyczyść pamięć podręczną składników MEF visualstudiogallery.msdn.microsoft.com/…
kzu 1'16
150

Nie trzeba zmieniać nazwy ani usuwać całego folderu:

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

Wystarczy zmienić nazwę lub usunąć Microsoft.VisualStudio.Default.cacheplik w powyższej lokalizacji.

Ananta Sundar Shrestha
źródło
jeśli usuniesz wszystko z tego folderu, plik c ++ może nie być w stanie otworzyć.
Scott 理论 理论
To ratowało życie. Dzięki Ananta.
Zakir HC
73

Visual Studio Express 2012 ma różne ścieżki.

Visual Studio Express

  • ... \ Users \ {user} \ AppData \ Local \ Microsoft \ WDExpress \ 11.0 \ ComponentModelCache

Z Visual Studio Express 2012 dla sieci

  • ... \ Users \ {user} \ AppData \ Local \ Microsoft \ VWDExpress \ 11.0 \ ComponentModelCache

Nie musiałem ponownie instalować programu Visual Studio Express

Nazywają mnie Trinity
źródło
37

To naprawdę będzie działać jak mistrz:

Rozwiązanie: Spróbuj usunąć folder ComponentModelCache z poniższej lokalizacji.

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

Po udanym usunięciu utwórz ponownie folder o tej samej nazwie „ComponentModelCache”.

Hadi Salehy
źródło
pomogło mi to, dzięki za wskazówki
Arief
28

Usunięcie pamięci podręcznej modelu komponentów nie działało dla mnie (cóż, podany wyżej katalog względny nie istniał na moim komputerze). Zamiast tego zainstalowałem rozszerzenie Visual Studio 2012 Express . Narzędzia menu → * Rozszerzenia i aktualizacje ... ** → OnlineWybierz dowolne, a następnie pobierz. To najwyraźniej unieważnia pamięć podręczną powodując, że Visual Studio ją odbudowuje.

Oto moje źródło .

Nicola
źródło
1
Visual Studio - EXPRESS - ma inną lokalizację. Sprawdź inne odpowiedzi w tym wątku.
Pure.Krome
W moim przypadku stało się to po instalacji rozszerzenia xamarin w społeczności VS2015. po usunięciu wszystko idzie dobrze. Usuwam go w tym samym miejscu, co w tej odpowiedzi. Narzędzia> Rozszerzenia i aktualizacje
Ricardo Figueiredo
28

Ten problem można rozwiązać, usuwając lub usuwając wszystkie foldery i pliki %AppData%\..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache

To faktycznie czyści pamięć podręczną modelu komponentu Visual Studio.

Na komputerach z systemem Windows 7 ścieżka jest inna. Po wpisaniu %appdata%w oknie dialogowym Uruchom otwiera folder C:\Users\<username>\AppData\Roaming.

Kliknij przycisk „w górę”, aby przejść do folderu nadrzędnego i wybierz folder „Lokalny”.

Ostateczna ścieżka: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\11.0\ComponentModelCache

myaseedk
źródło
20

w programie Visual Studio 2012 i nowszych wersjach rozwiązaniem musi być usunięcie zawartości folderu 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
źródło
20

W przypadku programu Visual Studio 2013 musisz usunąć ten folder z tej ścieżki:

%AppData%\..\Local\Microsoft\VisualStudio\12.0
Arun Rana
źródło
1
Doświadczyłem tego po tym, jak skończyła się moja bateria, instalując dość dużą aktualizację Xamarin dla vs2013. Poszedłem do tego folderu, przemianowałem ComponenetModelCache i po ponownym uruchomieniu odtworzył folder i został naprawiony. Ty
Dylan Hayes
Pracowałem również dla innego błędu dla mnie:'visual c++ package' failed to load
JTIM
16

Miałem ten sam problem po uruchomieniu Visual Studio 2013 Ultimate, a rozwiązania tutaj nie działały dla mnie. Próbowałem usunąć wspomniane foldery i ponownie uruchomić Visual Studio, ale to nie działało.

Miałem jednak również inne problemy, na przykład pakiet Microsoft.visual studio nie został poprawnie załadowany, a także nie znaleziono strony „312e8a59-2712-48a1-863e-0ef4e67961fc” VS 2012 . Ten ostatni odnosi się do komunikatu w oknie Eksploratora zespołu, mówiącego: „Nie można znaleźć numeru strony”.

Więc uruchamiam devenv /setupw wierszu polecenia Visual Studio z uprawnieniami administratora. Wykonał robotę i teraz wszystko jest w porządku.

jbarrameda
źródło
Usuwałem określony folder (Win 8.1, VS 2013 Prem) i ciągle wracał za każdym razem, gdy zamykałem i ponownie otwierałem VS. To też niestety nie działało.
bdwakefield
1
Po wypróbowaniu kilku rozwiązań udało się rozwiązać problem. Ponieważ wiersz polecenia VS dla VS2013 nie jest łatwy do znalezienia, oto ścieżka do niego: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ Shortcuts
Tarabass
devenv / setup naprawił dla mnie problem z awarią VS 2015 Pro. ComponentModelCache nie naprawiał tego.
Zach Green
Wow - nie spodziewałem się, że to zadziała, ale zadziałało! VS 2017 Community Edition.
scolja
13

Usuń zawartość folderu ComponentModelCache .

 %AppData%..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache
Ali
źródło
11

Wyczyszczenie folderów nie działało dla mnie. Więc poszedłem do „Programy i funkcje” i użyłem przycisku zmiany, aby uruchomić konfigurację Visual Studio 2013.

W konfiguracji wybieram funkcję naprawy i to rozwiązało problem.

C. Molendijk
źródło
9

Miałem ten sam problem z Visual Studio Express 2013 Windows 8.1.

Niestety w folderze
% AppData% .. \ Local \ Microsoft \ VisualStudio \ 12.0 \ ComponentModelCache nie było folderu „ComponentModelCache” .

Znalazłem folder „ComponentModelCache” w folderze
.. \ Users [nazwa użytkownika] \ AppData \ Local \ Microsoft \ WDExpress \ 12.0

i rozwiązałem ten problem, usuwając z niego ten folder.

fose
źródło
8

Jeśli masz VS 2013, musisz przejść do: % LOCALAPPDATA% \ Microsoft \ VisualStudio \ 12.0, a następnie zmienić nazwę folderu ComponentModelCache.

Rouse02
źródło
+1 dla% LOCALAPPDATA%, korzystałem z% AppData% i nie znalazłem żadnego folderu takiego jak ComponentModelCache. Ale za pomocą% LOCALAPPDATA% mogę to zdobyć.
Rajshekar Reddy
7

Podobny problem wystąpił po niektórych aktualizacjach wydanych przez Microsoft (część z nich dotyczyła .NET Framework 4.5).

W Internecie mam następujący link do artykułu z bazy wiedzy Microsoft Knowledge Base:

Aktualizacja dla Microsoft Visual Studio 2012 (KB2781514)

To zadziałało dla mnie.

Filippo
źródło
1
+1 - Świetne znalezisko! To rozwiązało problem dla mnie. Jest to prawidłowe rozwiązanie zamiast hackerskiego usuwania pliku pamięci podręcznej, co może mieć konsekwencje w przyszłości.
Travis J
Tyle że problem ten nadal występuje w VS2015, więc jest mało prawdopodobne, aby było to „uzasadnione rozwiązanie”.
Neil
6

Zdarzyło mi się to w Visual Studio 2013 Web, po zainstalowaniu przez Windows kilku aktualizacji. Niestety żadna z sugestii w tym wątku nie pomogła.

Musiałem ponownie uruchomić instalator i wybrać opcję „Napraw”. Po tym (i ponownym uruchomieniu) znów działało.

W niektórych przypadkach może być konieczne naprawienie więcej niż jednej wersji programu Visual Studio. Jednym z przykładów jest to, że formant Zadania skryptu w VS 2013 otwiera VS 2012 po kliknięciu Edytuj skrypt.

łatwiejsze
źródło
4

Zmiana nazwy folderu ComponentModelCache działała dla mnie w programie Visual Studio 2015, ale z nieco inną ścieżką:

%AppData%\..\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
Robotnicka
źródło
3

Mam system Windows 7 x64 z drugą partycją, na której jest zainstalowany system Windows 8 (wersja zapoznawcza). Podczas pracy z Microsoft Visual Studio Express 2012 dla Windows Phone napotkałem ten sam problem. Ale ComponentModelCache można znaleźć tutaj:

C: \ Users \ Jayaram \ AppData \ Local \ Microsoft \ VPDExpress \ 11.0

Nie mogę usunąć ani zmienić nazwy, ponieważ pojawia się komunikat „Odmowa dostępu” przy próbie użycia wiersza polecenia:

Administrator: VS2012 X64 CrossToolsCommandPrompt

użytkownik2063329
źródło
3

Przyczyną tego problemu jest uszkodzenie pamięci podręcznej MEF. Zainstalowanie rozszerzenia opinii (lub zainstalowanie dowolnego rozszerzenia) spowoduje unieważnienie pamięci podręcznej, co spowoduje, że VS ją przebuduje.

kliknij po źródło.

emy
źródło
3

Korzystam z programu Visual Studio 2012. Po zainstalowaniu programu Visual Studio 2013 web express, kiedy chcę uruchomić lub otworzyć dowolny projekt w Visual Studio 2012, pokazuje mi następujący błąd:

nie znaleziono eksportu odpowiadającego nazwie kontraktu ograniczającego” .

Próbowałem również powyższego rozwiązania w celu wyczyszczenia ComponentModelCache , ale nie znalazłem folderu. Mój problem rozwiązuję po prostu: Napraw program Visual Studio 2012

W przypadku ekspresowych wersji oprogramowania potrzebny folder znajduje się w nieco innym miejscu: w Express 2012 for Web C:\Users\XXXXXXXX\AppData\Local\Microsoft\VWDExpress- nie w folderze Visual Studio.

Peter Mortensen
źródło
1
zdarzyło mi się to w 2013 roku, ponieważ to jedyne studio graficzne zainstalowane na moim komputerze - naprawiłem, jak wspomniałeś przez panel „odinstaluj program” i zostało naprawione.
Dave Rael
Początkowo nie znalazłem folderu przy użyciu% AppData%, ale przy użyciu% LOCALAPPDATA% mogłem nawigować i znaleźć folder
Rajshekar Reddy
bingo ,,,, ta jest dla mnie bardziej dokładna odpowiedź
Rohit Behera
2

Wystąpił ten problem w programie Microsoft Visual Studio Express 2012 dla systemu Windows Phone podczas próby otwarcia pliku.

Potem przejrzałem do

C: \ Users \ MyUserName \ AppData \ Local \ Microsoft \ VPDExpress \ 11.0 \ ComponentModelCache

I Inside ComponentModelCache usunąłem plik CACHE Microsoft.VisualStudio.Default.cache. W końcu ponownie uruchomiłem studio graficzne i ponownie otworzyłem projekt.

Potem mój problem został rozwiązany, mogłem otworzyć plik.

Uwaga: Mój system operacyjny to Windows 8. I zainstalowałem SDK 8 do programowania aplikacji Windows Phone

Dzięki

Rashedul.Rubel
źródło
2

Wystąpił błąd z tym samym komunikatem o błędzie - dwa lata później. Tym razem jest to jednak inny problem związany z rzeczami .NET Core dnx.

Nie mogłem znaleźć odpowiedzi na temat przepełnienia stosu, ale istnieje problem GitHub, który zawiera obejście: https://github.com/aspnet/Home/issues/1455

Poniżej znajduje się najważniejsza część obejścia:

  • Usuń cały C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\DNXkatalog. (O ile rozumiem, należy do starej wersji programu ASP.NET Core RC1, który z jakiegoś powodu jest nadal dostarczany nawet z Visual Studio 2015 Update-3).
  • Usuń C:\Users\<user>\AppData\Local\Microsoft\VisualStudio\14.0\devenv.exe.configplik.
  • Uruchom wiersz polecenia dewelopera dla programu Visual Studio 2015 jako administrator i wykonaj devenv /setuppolecenie. Generowany jest nowy plik devenv.exe.config. Tym razem istnieje wiele zestawów, które odnoszą się do C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\DotNet katalogu.
  • Uruchom program Visual Studio 2015 i sprawdź, czy wyświetla narzędzia Microsoft .NET Core Tools (wersja zapoznawcza 2) 14.1.20624.0 w menu Pomoc => Informacje o programie Microsoft Visual Studio.

Dzięki postowi olegburova na GitHubie za zrozumienie tego.

Matty
źródło
1

Musiałem odinstalować niektóre komponenty zewnętrzne, takie jak Postsharp i Apex, a potem zadziałało. Próbowałem również wybranego rozwiązania, ale dało mi to więcej błędów.

Revious
źródło
1

Usuwanie folderów nie działało dla mnie, mam panel sterowania i naprawiłem

Visual Studio Installer Projects extensions for VS 2013.

I zadziałało dla mnie

Vivekh
źródło
0

Ten błąd wystąpił po ponownej instalacji IntelliJ IDEA i ReSharper dla C # w Visual Studio 2013.

Najpierw mam problem z rozszerzeniami, a potem ten błąd:

„Nie znaleziono eksportu odpowiadającego nazwie kontraktu ograniczającego”

Po prostu usunąłem folder ComponentModelCache i rozwiązałem ten błąd.

Igor Lewkiwski
źródło
0

Moje 2 centy: Postępując zgodnie z powyższymi wskazówkami dotyczącymi ratowania życia, miałem nieco inne doświadczenia; mój jest VS 2017 Community Edition, zainstalowany raz i zauważam, że mają wszystkie te 3 foldery:

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

To jest ten, który ma ComponentModelCache:

%LocalAppData%\Microsoft\VisualStudio\15.0_7f0c75b0

Usunięcie tylko Microsoft.VisualStudio.Default.cache nie przyniosło żadnego efektu.

Usunąłem więc wszystkie 4 pliki: .cache, .err, .external i katalogi. Po ponownym uruchomieniu VS problem zniknął i pojawił się piąty plik:

Microsoft.VisualStudio.Default.scan
Marcelo Scofano
źródło
0

Usuwanie ComponentModelCachenie działało dla mnie. Ponowna instalacja VS 2019 zrobiła dzięki zaleceniu w tej sprawie wątku wsparcia Microsoft.

Detale

  • To wydaje się być znanym błędem z poprawką przychodzącą z MS (stan na 1/7/2020)
  • Doświadczenie po aktualizacji z VS2019 Pro 16.2 (myślę, że to był?) Do 16.4.2 za pomocą programu Visual Studio Installer
  • Błąd wyświetlany podczas próby uruchomienia zarówno konsoli nuget, jak i menedżera pakietów nuget
w00ngy
źródło