错误信息 "找不到与约束合同名称匹配的导出项"

1098
今天早上我在打开 Visual Studio 解决方案时遇到了一个问题,当我尝试运行它时出现以下提示:

找不到与约束合同名称匹配的导出项

请问该如何解决这个问题?

7
有人知道为什么会出现这个问题吗? - pattivacek
26个回答

2198
我通过清除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年,建议在重新启动Visual Studio之前删除两个版本的ComponentModelCache,即11.0和12.0。


20
对我来说也奏效了,但对于Visual Studio桌面开发者快速版(express version),我在...\AppData\Local\Microsoft\WDExpress目录下找到了缓存数据。 - josiah
4
在删除了包含 C++ 文件的文件夹中所有内容后,我无法打开这些文件。当我还原这些文件(除 Microsoft.VisualStudio.Default.cache 以外),然后重新打开我的解决方案时,一切都恢复正常。请注意,保持原文意思不变,尽可能通俗易懂。 - Scott 混合理论
2
删除 Microsoft.VisualStudio.Default.cache 文件解决了问题。 - Tim Valentine
1
在安装了VS 2012上的.NET 4.5.1开发包之后,@alexo对我可用。 - mt_serg
4
这个扩展可以自动地帮您完成以下操作(包括重新启动VS):清除MEF组件缓存。下载地址为:https://visualstudiogallery.msdn.microsoft.com/22b94661-70c7-4a93-9ca3-8b6dd45f47cd。 - kzu
显示剩余19条评论

154
不需要重命名或删除整个文件夹:
(%AppData%\..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache)

只需在上述位置内重命名或删除Microsoft.VisualStudio.Default.cache文件。


如果删除此文件夹中的所有内容,C++文件可能无法打开。 - Scott 混合理论
这真是救命之恩。谢谢Ananta。 - Zakir HC

73

Visual Studio Express 2012有不同的路径。

Visual Studio Express

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

对于Visual Studio Express 2012 for Web

  • ...\Users\{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" 重新创建文件夹。


这与得票最高且被接受的答案以及其他一些现代答案相同。 - Lance U. Matthews

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


28

删除组件模型缓存对我没用(好吧,在我的电脑上,上面给出的相对目录不存在)。相反,我安装了一个扩展程序到Visual Studio 2012 Express。菜单工具扩展和更新...在线选择任何,然后下载。这显然会使缓存无效,导致Visual Studio重新构建。

这是我的来源


1
Visual Studio --EXPRESS-- 有不同的位置。请查看此线程中的其他答案。 - Pure.Krome
在我的情况下,这是在安装了VS2015社区版中的Xamarin扩展后发生的。之后卸载后一切都正常了。我是在“工具”>“扩展和更新”中删除它的,就像在这个答案中一样。 - Ricardo Figueiredo

21

对于 Visual Studio 2013,您需要从此路径中删除该文件夹:

%AppData%\..\Local\Microsoft\VisualStudio\12.0

1
我在安装一个相当大的vs2013 xamarin更新时,遇到了电池耗尽的情况。进入这个文件夹,重命名ComponenetModelCache,在重新启动后它会重新创建文件夹并解决问题。谢谢。 - Dylan Hayes
还为我解决了另一个错误:'visual c++ package' 无法加载 - JTIM

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

16

我在启动Visual Studio 2013 Ultimate时遇到了同样的问题,这里提供的解决方案对我无效。我尝试删除提到的文件夹并重新启动Visual Studio,但是没有起作用。

然而,我还有其他问题,例如Microsoft.visual studio package did not load correctlyPage '312e8a59-2712-48a1-863e-0ef4e67961fc' not found VS 2012。后者指的是Team Explorer窗口中显示的“页面'somenumber'无法找到”的消息。

因此,我以管理员权限在Visual Studio命令提示符上运行devenv /setup。它解决了我的问题,现在一切都很好。


我正在删除指定的文件夹(Win 8.1,VS 2013 Prem),但每次关闭并重新打开VS时,它都会重新出现。不幸的是,这也没有起作用。 - bdwakefield
1
尝试了几种解决方案后,终于找到了解决我的问题的方法。由于VS2013的命令提示符不容易找到,这里是它的路径: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts - Tarabass
devenv /setup 对于我来说解决了与VS 2015专业版的崩溃问题。ComponentModelCache并没有修复它。 - Zach Green
哇 - 没想到这个能够工作,但它确实做到了!VS 2017社区版。 - scolja

13

删除 ComponentModelCache 文件夹的内容。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接