Mensagem de erro "Não foram encontradas exportações que correspondam ao nome do contrato de restrição"

1070

Esta manhã, enfrentei um problema ao abrir minha solução do Visual Studio e, quando tentei executá-lo, ele disse:

Não foram encontradas exportações que correspondam ao nome do contrato de restrição

Como posso resolver este problema?

Simon B.Robert
fonte
4
Seja bem-vindo, prazer em tirá-lo desta questão irritante.
Simon B.Robert
3
Você não deve postar sua resposta como resposta abaixo? Desta forma, pode-se-votá-lo se ele trabalhou para nós (o que ele fez por mim) ;-)
Kenneth K.
7
Alguém tem uma idéia de por que esse problema ocorre?
Patrickvacek 21/09/2015

Respostas:

2160

Resolvi esse problema limpando o cache do Visual Studio Component Model.

Basta excluir ou renomear esta pasta:

%LocalAppData%\Microsoft\VisualStudio\11.0\ComponentModelCache

ou

%LocalAppData%\Microsoft\VPDExpress\11.0\ComponentModelCache

e reinicie o Visual Studio.

A versão do Visual Studio que você possui é especificada pelo número, por exemplo

O Visual Studio 2012 é 11.0(como mostrado acima)

O Visual Studio 2013 é 12.0

O Visual Studio 2015 é 14.0

O Visual Studio 2017 é 15.0

O Visual Studio 2019 é 16.0

Para quem não sabe: %LocalAppData%\é o mesmo queC:\Users\{yourUsername}\AppData\Local

Para quem tem várias versões do Visual Studio instaladas, por exemplo, 2012 e 2013, pode ser útil remover o ComponentModelCache para ambas as versões antes de reiniciar o Visual Studio, por exemplo, 11.0 e 12.0.

Simon B.Robert
fonte
16
Trabalhou para mim também, mas para a versão expressa do VS desktop Developer, eu achei os dados de cache em ... \ AppData \ Local \ Microsoft \ WDExpress
Josias
4
Não consigo abrir meus arquivos c ++ depois de excluir tudo nessa pasta, quando restauro esses arquivos, exceto Microsoft.VisualStudio.Default.cache, reabra minha solução e tudo volta ao normal.
Scott混合理论
2
A exclusão do arquivo Microsoft.VisualStudio.Default.cache resolveu o problema
Tim Valentine
1
@alexo, aparece para mim depois de instalar o pacote de desenvolvimento .net 4.5.1 no vs 2012
mt_serg
4
Esta extensão faz isso automaticamente para você com um clique (incluindo reiniciar VS): Limpar MEF Cache Component visualstudiogallery.msdn.microsoft.com/...
kzu
150

Não há necessidade de renomear ou excluir a pasta inteira:

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

Apenas renomeie ou exclua o Microsoft.VisualStudio.Default.cachearquivo dentro do local acima.

Ananta Sundar Shrestha
fonte
se excluir tudo nesta pasta, talvez o arquivo c ++ não consiga abrir.
Scott混合理论
Isso salvou vidas. Obrigado Ananta.
Zakir HC
73

O Visual Studio Express 2012 tem caminhos diferentes.

Visual Studio Express

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

Com o Visual Studio Express 2012 para Web

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

Não precisei reinstalar o Visual Studio Express

Eles me chamam de Trinity
fonte
37

Isso realmente funcionará como um campeão:

Solução: Tente excluir a pasta ComponentModelCache do local abaixo.

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

E após a exclusão bem-sucedida, recrie a pasta com o mesmo nome, "ComponentModelCache".

Hadi Salehy
fonte
Isso me ajudou, obrigado pelas dicas
arief
28

A exclusão do cache do modelo de componentes não funcionou para mim (bem, o diretório relativo fornecido acima não existia na minha máquina). Em vez disso, instalei uma extensão no Visual Studio 2012 Express . Ferramentas do menu → * Extensões e atualizações ... ** → OnlineEscolha qualquer e faça o download. Aparentemente, isso invalida o cache, fazendo com que o Visual Studio o reconstrua.

Aqui está a minha fonte .

Nicola
fonte
1
O Visual Studio --EXPRESS-- tem um local diferente. Verifique as outras respostas neste tópico.
Pure.Krome
No meu caso, isso ocorreu após a instalação da extensão xamarin na comunidade VS2015. depois de remover tudo vai bem. Eu o removo no mesmo lugar que nesta resposta. Ferramentas> Extensões e Atualizações
Ricardo Figueiredo
28

Esse problema pode ser resolvido excluindo ou limpando todas as pastas e arquivos de %AppData%\..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache

Na verdade, isso limpa o cache do modelo de componente do Visual Studio.

Nas máquinas com Windows 7, o caminho é diferente. Quando você digita %appdata%na caixa de diálogo Executar , ela abre a pasta C:\Users\<username>\AppData\Roaming.

Clique no botão 'para cima' para navegar até a pasta pai e selecione a pasta 'Local'.

Caminho final: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\11.0\ComponentModelCache

myaseedk
fonte
20

para o Visual Studio 2012 e versões posteriores, a solução deve excluir o conteúdo da pasta 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
fonte
20

Para o Visual Studio 2013, você precisa remover essa pasta deste caminho:

%AppData%\..\Local\Microsoft\VisualStudio\12.0
Arun Rana
fonte
1
Eu experimentei isso depois que minha bateria acabou instalando uma atualização bastante grande do xamarin para o vs2013. Entrou nessa pasta, renomeou o ComponenetModelCache e, após a reinicialização, recriou a pasta e foi corrigido. Ty
Dylan Hayes
Também funcionou para outro erro para mim:'visual c++ package' failed to load
JTIM 21/07
16

Eu tive o mesmo problema ao iniciar o Visual Studio 2013 Ultimate, e as soluções aqui não funcionaram para mim. Tentei excluir as pastas mencionadas e iniciar o Visual Studio novamente, mas não funcionou.

No entanto, também tive outros problemas, como o pacote Microsoft.visual studio não foi carregado corretamente e também não foi encontrado no VS 2012 . O último refere-se a uma mensagem na janela do Team Explorer dizendo "A página 'número de som' não pode ser encontrada".

Então, eu corro devenv /setupno prompt de comando do Visual Studio com direitos administrativos. Ele fez o trabalho, e está tudo bem agora.

jbarrameda
fonte
Eu estava excluindo a pasta especificada (Win 8.1, VS 2013 Prem) e ela voltava toda vez que eu fechava e reabriava o VS. Infelizmente, isso também não funcionou.
precisa saber é o seguinte
1
Depois de tentar várias soluções, foi o truque que resolveu meus problemas. Como o comando VS Prompt para VS2013 não é fácil de encontrar aqui é o caminho para isso: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ Shortcuts
Tarabass
O devenv / setup corrigiu um problema de falha com o VS 2015 Pro para mim. O ComponentModelCache não estava corrigindo.
Zach Green
Uau - não esperava que isso funcionasse, mas funcionou! Edição VS 2017 Community.
scolja 14/09/18
13

Remova o conteúdo da pasta ComponentModelCache .

 %AppData%..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache
Todos
fonte
11

Limpar as pastas não funcionou para mim. Então, fui para 'Programas e Recursos' e usei o botão Alterar para iniciar a instalação do Visual Studio 2013.

Na instalação, escolhi a função de reparo e isso resolveu o problema para mim.

C. Molendijk
fonte
9

Eu tive o mesmo problema com o Visual Studio Express 2013 do Windows 8.1.

Infelizmente, não havia pasta "ComponentModelCache" em
% AppData% .. \ Local \ Microsoft \ VisualStudio \ 12.0 \ ComponentModelCache.

Encontrei a pasta "ComponentModelCache" em
.. \ Users [nome de usuário] \ AppData \ Local \ Microsoft \ WDExpress \ 12.0

e resolveu esse problema removendo esta pasta de lá.

fose
fonte
8

Se você tiver o VS 2013, precisará acessar: % LOCALAPPDATA% \ Microsoft \ VisualStudio \ 12.0 e renomeie a pasta ComponentModelCache.

Rouse02
fonte
+1 para% LOCALAPPDATA%, eu estava usando% AppData% e não encontrei nenhuma pasta como ComponentModelCache. Mas usando% LOCALAPPDATA% eu consigo.
Rajshekar Reddy
7

Eu tive um problema semelhante após algumas atualizações lançadas pela Microsoft (parte delas sobre o .NET Framework 4.5).

Na Internet, obtive o seguinte link para o artigo da base de conhecimento da Microsoft:

Atualização para o Microsoft Visual Studio 2012 (KB2781514)

Funcionou para mim.

Filippo
fonte
1
+1 - Ótima descoberta! Isso resolveu o problema para mim. É a solução legítima, em vez de excluir o arquivo de cache de forma hackeada, o que pode ter implicações no futuro.
Travis J
Exceto que esse problema ainda existe no VS2015, é improvável que essa seja a 'solução legítima'.
Neil
6

Isso aconteceu comigo no Visual Studio 2013 Web, depois que o Windows instalou várias atualizações. Infelizmente, nenhuma das sugestões neste tópico ajudou.

Eu tive que executar novamente o instalador e selecionar a opção "Reparar". Depois disso (e uma reinicialização), estava funcionando novamente.

Em alguns casos, talvez seja necessário reparar mais de uma versão do Visual Studio. Um exemplo é quando um controle de Tarefa de Script no VS 2013 abre o VS 2012 quando você clica em Editar Script.

easuter
fonte
4

Renomear a pasta ComponentModelCache funcionou para mim no Visual Studio 2015, mas com um caminho ligeiramente diferente:

%AppData%\..\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
Robotnicka
fonte
3

Eu tenho o Windows 7 x64 com uma segunda partição na qual o Windows 8 (visualização instalada). Ao trabalhar com o Microsoft Visual Studio Express 2012 para Windows Phone, encontro o mesmo problema. Mas o ComponentModelCache é encontrado aqui:

C: \ Usuários \ Jayaram \ AppData \ Local \ Microsoft \ VPDExpress \ 11.0

Não consigo excluir ou renomear, pois recebo a mensagem "acesso negado" quando tento usar o prompt de comando:

Administrador: VS2012 X64 CrossToolsCommandPrompt

user2063329
fonte
3

Esse problema ocorre devido a uma corrupção de cache do MEF. Instalar a extensão de feedback (ou instalar qualquer extensão) invalidará o cache, fazendo com que o VS o reconstrua.

clique para fonte.

emy
fonte
3

Estou usando o Visual Studio 2012. Depois de instalar o Web Studio do Visual Studio 2013, quando desejo executar ou abrir qualquer projeto no Visual Studio 2012, ele me mostra o seguinte erro:

" não foram encontradas exportações que correspondam ao nome do contrato de restrição" .

Eu também tentei a solução acima para limpar o ComponentModelCache , mas não encontrei a pasta. Eu resolvo meu problema apenas por: Reparar o Visual Studio 2012

Para as versões Express do software, a pasta que você precisa está em um local (s) um pouco diferente: No Express 2012 for Web, ela está C:\Users\XXXXXXXX\AppData\Local\Microsoft\VWDExpress- não na pasta Visual Studio.

Peter Mortensen
fonte
1
isso aconteceu comigo em 2013, sendo esse o único estúdio visual instalado na minha máquina - reparou, como você mencionou no painel "desinstalar um programa" e foi corrigido.
Dave Rael
Eu não encontrar a pasta demasiado inicialmente usando% AppData%, mas usando% LOCALAPPDATA% eu poderia naviagte e localize a pasta
Rajshekar Reddy
bingo ,,,, este é resposta mais precisa para mim
Rohit Behera
2

Eu experimentei esse problema no Microsoft Visual Studio Express 2012 para windows phone enquanto tentava abrir o arquivo.

Então eu naveguei para

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

E por dentro ComponentModelCache eu excluí o arquivo CACHE do Microsoft.VisualStudio.Default.cache. Finalmente, reiniciei o visual studio e reabri meu projeto.

Então meu problema foi resolvido, eu consegui abrir o arquivo.

Nota: Meu sistema operacional é o Windows 8. E instalei o SDK 8 para desenvolver o aplicativo Windows Phone

obrigado

Rashedul.Rubel
fonte
2

Eu recebi um erro com a mesma mensagem de erro - dois anos depois. Desta vez, é um problema diferente, relacionado às coisas do .NET Core dnx.

Não consegui encontrar uma resposta no Stack Overflow, mas há um problema no GitHub que contém uma solução alternativa: https://github.com/aspnet/Home/issues/1455

Abaixo está a parte mais importante da solução alternativa:

  • Exclua o C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\DNXdiretório inteiro . (Pelo que entendi, ele pertence à versão antiga do ASP.NET Core RC1, que por algum motivo ainda é enviada mesmo com o Visual Studio 2015 Update-3).
  • Exclua o C:\Users\<user>\AppData\Local\Microsoft\VisualStudio\14.0\devenv.exe.configarquivo
  • Execute o prompt de comando do desenvolvedor do Visual Studio 2015 como administrador e execute o devenv /setupcomando O novo arquivo devenv.exe.config é gerado. Desta vez, existem muitos assemblies que se referem ao C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\DotNetdiretório.
  • Execute o Visual Studio 2015 e verifique se ele mostra o Microsoft .NET Core Tools (Visualização 2) 14.1.20624.0 no menu Ajuda => Sobre o Microsoft Visual Studio.

Obrigado à publicação de olegburov no GitHub por descobrir isso.

Matty
fonte
1

Eu tive que desinstalar alguns componentes externos, como Postsharp e Apex, e funcionou. Eu também tentei a solução escolhida, mas ela me deu mais erros.

Revious
fonte
1

A exclusão das pastas não funcionou para mim. Tenho o painel de controle e reparado

Visual Studio Installer Projects extensions for VS 2013.

E funcionou para mim

Vivekh
fonte
0

Eu recebi esse erro depois de reinstalar o IntelliJ IDEA e o ReSharper for C # no Visual Studio 2013.

Primeiro, recebi um problema de erro com extensões e, depois disso, recebi este erro:

"Não foram encontradas exportações que correspondam ao nome do contrato de restrição"

Simplesmente removi a pasta ComponentModelCache e resolvi esse erro.

Igor Levkivskiy
fonte
0

Meus 2 centavos: Depois de todas as dicas acima para salvar vidas, tive uma experiência um pouco diferente; o meu é o VS 2017 Community Edition, instalado uma vez, e noto que todas as três pastas estão:

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

Este é o que possui o ComponentModelCache:

%LocalAppData%\Microsoft\VisualStudio\15.0_7f0c75b0

A exclusão apenas do Microsoft.VisualStudio.Default.cache não teve efeito.

Então, eu apaguei todos os 4 arquivos lá: .cache, .err, .external e catálogos. Ao reiniciar o VS, o problema desapareceu e apareceu um quinto arquivo:

Microsoft.VisualStudio.Default.scan
Marcelo Scofano
fonte
0

Remover ComponentModelCachenão funcionou para mim. A reinstalação do VS 2019 ocorreu graças a uma recomendação neste segmento de suporte da Microsoft.

Detalhes

  • Este parece ser um bug conhecido com uma correção recebida do MS (em 1/7/2020)
  • Experiente após a atualização do VS2019 Pro 16.2 (eu acho que era?) Para 16.4.2 usando o Visual Studio Installer
  • Erro exibido ao tentar iniciar o console nuget e o gerenciador de pacotes nuget
w00ngy
fonte