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

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

我该如何解决这个问题?


当前回答

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

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

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

其他回答

删除ComponentModelCache对我不起作用。重新安装VS 2019要感谢微软支持线程上的建议。

细节

这似乎是一个已知的错误,微软已经修复了(截至2020年7月1日) 使用Visual Studio安装程序从VS2019 Pro 16.2(我想是?)升级到16.4.2后经验丰富 试图启动nuget控制台和nuget包管理器时显示错误

此问题可以通过删除或清除%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

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

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

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

点击查看源代码。

我通过清除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可能会有所帮助。