1093

今天早上我在打开我的 Visual Studio 解决方案时遇到了一个问题,当我尝试运行它时,它说:

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

我该如何解决这个问题?

4

26 回答 26

2191

我通过清除 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(例如 11.0 和 12.0)之前删除两个版本的 ComponentModelCache 可能会有所帮助。

于 2013-07-11T21:41:22.950 回答
153

无需重命名或删除整个文件夹:

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

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

于 2013-07-18T09:42:35.447 回答
73

Visual Studio Express 2012 有不同的路径。

Visual Studio 速成版

  • ...\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

于 2013-07-17T10:40:29.670 回答
37

这真的会像冠军一样工作:

解决方案:尝试从以下位置删除 ComponentModelCache 文件夹。

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

删除成功后,重新创建同名文件夹“ComponentModelCache”。

于 2016-05-30T04:53:42.150 回答
28

可以通过删除或清除所有文件夹和文件来解决此问题%AppData%\..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache

这实际上清除了 Visual Studio 组件模型缓存。

在 Windows 7 机器上,路径是不同的。当您%appdata%运行对话框中键入时,它会打开文件夹C:\Users\<username>\AppData\Roaming

单击“向上”按钮导航到父文件夹并选择文件夹“本地”。

最终路径:C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\11.0\ComponentModelCache

于 2013-07-28T12:03:22.980 回答
28

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

这是我的来源

于 2013-07-22T01:53:51.153 回答
21

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

%AppData%\..\Local\Microsoft\VisualStudio\12.0
于 2013-12-04T06:52:12.720 回答
20

对于Visual Studio 2012及更高版本,解决方案必须是删除文件夹的内容ComponentModelCache

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

视觉工作室 2013

C:\Users\[username]\AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache
于 2015-03-17T16:09:19.573 回答
16

我在启动 Visual Studio 2013 Ultimate 时遇到了同样的问题,这里的解决方案对我不起作用。我尝试删除提到的文件夹并再次启动 Visual Studio,但它不起作用。

但是我也遇到了其他问题,例如Microsoft.visual studio 包未正确加载以及Page '312e8a59-2712-48a1-863e-0ef4e67961fc' not found VS 2012。后者指的是团队资源管理器窗口中的一条消息,上面写着“找不到页面'somenumber'”。

所以我devenv /setup在具有管理权限的 Visual Studio 命令提示符下运行。它完成了工作,现在一切都很好。

于 2014-04-18T17:38:50.503 回答
13

删除ComponentModelCache文件夹内容。

 %AppData%..\Local\Microsoft\VisualStudio\11.0\ComponentModelCache
于 2014-12-01T09:34:47.123 回答
11

清除文件夹对我不起作用。所以我去了“程序和功能”并使用更改按钮启动 Visual Studio 2013 设置。

在设置中,我选择了修复功能,它为我解决了问题。

于 2014-06-10T08:12:16.137 回答
9

我在使用 Windows 8.1 的 Visual Studio Express 2013 时遇到了同样的问题。


不幸的是, %AppData%..\Local\Microsoft\VisualStudio\12.0\ComponentModelCache中没有“ComponentModelCache”文件夹。


我在..\Users[username]\AppData\Local\Microsoft\WDExpress\12.0中找到了“ComponentModelCache”文件夹

并通过从那里删除此文件夹解决了这个问题。

于 2015-05-27T16:23:10.970 回答
8

如果你有 VS 2013,你必须去:%LOCALAPPDATA%\Microsoft\VisualStudio\12.0 然后重命名 ComponentModelCache 文件夹。

于 2015-05-15T19:58:26.483 回答
7

在微软发布了一些更新(其中一部分是关于 .NET 框架 4.5)后,我遇到了类似的问题。

在 Internet 上,我获得了 Microsoft 知识库文章的以下链接:

Microsoft Visual Studio 2012 更新 (KB2781514)

它对我有用。

于 2013-08-23T07:47:19.057 回答
6

在 Windows 安装了几个更新之后,Visual Studio 2013 Web 发生在我身上。不幸的是,这个线程中的任何建议都没有帮助。

我不得不重新运行安装程序并选择“修复”选项。之后(并重新启动)它再次工作。

在某些情况下,您可能需要修复多个版本的 Visual Studio。一个示例是当您单击编辑脚本时 VS 2013 中的脚本任务控件打开 VS 2012。

于 2014-09-19T21:46:48.083 回答
4

在 Visual Studio 2015 中重命名 ComponentModelCache 文件夹对我有用,但路径略有不同:

%AppData%\..\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
于 2015-08-13T15:14:46.513 回答
3

我有 Windows 7 x64 和 Windows 8(安装了预览版)的第二个分区。在使用 Microsoft Visual Studio Express 2012 for Windows Phone 时,我遇到了同样的问题。但是 ComponentModelCache 在这里找到:

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

当我尝试使用命令提示符时收到“访问被拒绝”消息,我无法删除或重命名:

管理员:VS2012 X64 CrossToolsCommandPrompt

于 2013-08-11T01:22:30.710 回答
3

我正在使用 Visual Studio 2012。安装 Visual Studio 2013 Web Express 后,当我想在 Visual Studio 2012 中运行或打开任何项目时,它会显示以下错误:

未找到与约束合同名称匹配的导出”

我也尝试了清除ComponentModelCache的上述解决方案,但我没有找到该文件夹​​。我通过以下方式解决了我的问题:修复 Visual Studio 2012

对于该软件的 Express 版本,您需要的文件夹位于稍微不同的位置:对于 Express 2012 for Web,它位于C:\Users\XXXXXXXX\AppData\Local\Microsoft\VWDExpress- 不在 Visual Studio 文件夹中。

于 2013-12-30T15:17:22.167 回答
3

此问题是由于 MEF 缓存损坏造成的。安装反馈扩展(或安装任何扩展)将使缓存无效,导致 VS 重建它。

点击获取来源。

于 2015-05-05T08:36:56.577 回答
2

我在尝试打开文件时在 Microsoft Visual Studio Express 2012 for windows phone 中遇到了这个问题。

然后我浏览到

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

在 ComponentModelCache 里面我删除了 Microsoft.VisualStudio.Default.cache CACHE 文件。最后我重新启动了视觉工作室并重新打开了我的项目。

然后我的问题解决了,我可以打开文件了。

注意:我的操作系统是 windows 8。我安装了 SDK 8 来开发 windows phone 应用程序

谢谢

于 2015-05-13T07:14:57.837 回答
2

两年后,我收到了相同错误消息的错误。不过这次是一个不同的问题,与 .NET Core dnx 相关。

我在 Stack Overflow 上找不到答案,但有一个包含解决方法的 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 并检查它是否在 Help => About Microsoft Visual Studio 菜单中显示 Microsoft .NET Core Tools (Preview 2) 14.1.20624.0。

感谢olegburov在 GitHub 上的帖子解决了这个问题。

于 2016-09-28T14:55:13.107 回答
1

删除文件夹对我不起作用我已经去控制面板并修复了

Visual Studio Installer Projects extensions for VS 2013.

它对我有用

于 2014-10-11T09:53:34.617 回答
1

我必须卸载一些外部组件,如 Postsharp 和 Apex,然后它才能工作。我也尝试了选择的解决方案,但它给了我更多错误。

于 2014-04-02T09:14:54.993 回答
0

在 Visual Studio 2013 中重新安装IntelliJ IDEAReSharper for C#后出现此错误。

首先,我遇到了扩展的错误问题,之后我收到了这个错误:

“未找到与约束合同名称匹配的导出”</p>

我只是删除了文件夹 ComponentModelCache 并解决了这个错误。

于 2016-03-03T08:43:34.707 回答
0

我的 2 美分:遵循以上所有救生技巧,我的经历略有不同;我的是 VS 2017 社区版,安装一次,我注意到有所有这 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
于 2019-04-14T00:02:18.833 回答
0

删除ComponentModelCache对我不起作用。 由于Microsoft 支持线程上的建议,重新安装 VS 2019 确实如此。

细节

  • 这似乎是一个已知的错误,有来自 MS 的修复(截至 2020 年 1 月 7 日)
  • 使用 Visual Studio Installer 从 VS2019 Pro 16.2(我认为是?)升级到 16.4.2 后体验
  • 尝试同时启动 nuget 控制台和 nuget 包管理器时显示错误
于 2020-01-07T20:04:29.267 回答