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

没有找到与约束契约名称匹配的导出

我该如何解决这个问题?


当前回答

这个问题是因为MEF缓存损坏。 安装反馈扩展(或安装任何扩展)将使缓存无效,导致VS重新构建它。

点击查看源代码。

其他回答

我在Windows 8.1的Visual Studio Express 2013上也遇到了同样的问题。

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

我找到了“ComponentModelCache”文件夹 . . \用户【用户名】微软\ AppData \当地\ \ WDExpress \ 12.0

然后把这个文件夹从那里移走解决了这个问题。

这发生在我使用Visual Studio 2013 Web时,在Windows安装了几次更新之后。不幸的是,这篇文章中的建议都没有帮助。

我不得不重新运行安装程序并选择“修复”选项。在那之后(和重启),它又开始工作了。

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

我通过清除Visual Studio组件模型缓存解决了这个问题。

只需删除或重命名此文件夹:

%LocalAppData%\Microsoft\VisualStudio\11.0\ComponentModelCache

or

%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可能会有所帮助。

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

然而,我也遇到了其他问题,比如微软。visual studio包没有正确加载,页面“312e8a59-2712-48a1-863e-0ef4e67961fc”没有找到VS 2012。后者指的是团队资源管理器窗口中的一条消息,说“无法找到页面‘somenumber’”。

因此,我以管理权限在Visual Studio命令提示符上运行devenv /setup。它成功了,现在一切都好了。

Visual Studio Express 2012有不同的路径。

Visual Studio Express

... \ {user} \ \用户微软当地AppData \ \ \ WDExpress \ \ ComponentModelCache 11级左右

使用Visual Studio Express 2012 for Web

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

我不需要重新安装Visual Studio Express