错误消息“未找到与约束合同名称匹配的出口”


1069

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

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

我该如何解决这个问题?


4
欢迎您,很高兴使您摆脱这个烦人的问题。
西蒙·罗伯特

3
您不应该在下面将答案发布为答案吗?这样,如果它对我们有用(它对我有用),我们可以对其进行投票;-)
Kenneth K.

7
有谁知道为什么会发生此问题?
patrickvacek

Answers:


2160

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


16
在... \应用程序数据\本地\微软\ WDExpress为我工作,但出于VS桌面开发的Express版本,我找到了缓存数据
西亚

4
删除这些文件夹中的所有文件后,我无法打开c ++文件,当我还原这些文件(除Microsoft.VisualStudio.Default.cache外)后,重新打开我的解决方案,然后一切恢复正常。
Scott混合理论2013年

2
删除Microsoft.VisualStudio.Default.cache文件即可解决问题
Tim Valentine

1
@alexo,在vs 2012上安装.net 4.5.1开发包后为我出现
mt_serg 2014年

4
这种扩展将自动为您完成此与一个点击(包括重新启动VS):清除MEF组件缓存visualstudiogallery.msdn.microsoft.com/...
kzu


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”的文件夹。


这对我有帮助,感谢您的提示
Arief

28

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

这是我的消息来源


1
Visual Studio --EXPRESS--具有不同的位置。检查此线程中的其他答案。
Pure.Krome 2013年

就我而言,它是在VS2015社区中安装xamarin扩展后发生的。删除后一切顺利。我将其删除与此答案所在的位置相同。工具>扩展和更新
Ricardo Figueiredo

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


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

20

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

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

1
在电池用完为vs2013安装相当大的xamarin更新后,我经历了这一情况。进入该文件夹,将其重命名为ComponenetModelCache,并在重新启动后重新创建该文件夹并进行了修复。Ty
Dylan Hayes

也为我另一个错误工作:'visual c++ package' failed to load
JTIM

16

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

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

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


我正在删除指定的文件夹(Win 8.1,VS 2013 Prem),每次关闭并重新打开VS时,它都会不断返回。不幸的是,这也不起作用。
bdwakefield'3

1
在尝试了几种解决方案之后,解决了我的问题的窍门就是了。因为不容易找到VS2013的VS命令提示符,所以在这里找到它的路径:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ Shortcuts
Tarabass 2015年

devenv / setup为我修复了VS 2015 Pro崩溃的问题。ComponentModelCache没有修复它。
Zach Green

哇-没想到它会起作用,但是它起作用了!VS 2017社区版。
scolja

13

删除ComponentModelCache文件夹内容。

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

11

清除文件夹对我不起作用。因此,我转到了“程序和功能”,并使用“更改”按钮启动了Visual Studio 2013安装程序。

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


9

Windows 8.1的Visual Studio Express 2013存在相同的问题。

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

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

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


8

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


+1为%LOCALAPPDATA%,我正在使用%AppData%,但未找到任何类似ComponentModelCache的文件夹。但是使用%LOCALAPPDATA%我可以得到它。
Rajshekar Reddy

7

从Microsoft发布一些更新后,我遇到了类似的问题(其中的一部分有关.NET Framework 4.5)。

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

Microsoft Visual Studio 2012更新(KB2781514)

它为我工作。


1
+1-好发现!这为我解决了问题。这是合法的解决方案,而不是随意删除可能会在将来产生影响的缓存文件。
特拉维斯J

除了VS2015中仍然存在此问题外,因此这不太可能是“合法解决方案”。
尼尔

6

Windows安装了多个更新后,Visual Studio 2013 Web发生了这种情况。不幸的是,该线程中的建议均无济于事。

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

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


4

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

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

3

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

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

当我尝试使用命令提示符时,由于出现“拒绝访问”消息,因此无法删除或重命名:

管理员:VS2012 X64 CrossToolsCommandPrompt


3

此问题是由于MEF缓存损坏。安装反馈扩展(或安装任何扩展)会使缓存无效,从而使VS对其进行重建。

单击获取源。


3

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

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

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

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


1
对于我来说,这是在2013年发生的,这是我的机器上唯一安装的Visual Studio-确实可以修复,正如您通过“卸载程序”面板提到的那样,此问题已修复。
Dave Rael 2014年

我最初并没有使用%AppData%找到该文件夹​​,但是通过使用%LOCALAPPDATA%我可以通过naviagte并找到该文件夹
Rajshekar Reddy

宾果游戏,对我来说,这是一个更准确的答案
Rohit Behera

2

我在尝试打开文件时在Windows Phone的Microsoft Visual Studio Express 2012中遇到此问题。

然后我浏览到

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

在ComponentModelCache内部,我删除了Microsoft.VisualStudio.Default.cache CACHE文件。最后,我重新启动了Visual Studio,然后重新打开了我的项目。

然后我的问题解决了,我能够打开文件。

注意:我的操作系统是Windows8。我安装了SDK 8,用于开发Windows Phone应用

谢谢


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,并在“帮助=>关于Microsoft Visual Studio”菜单中检查它是否显示Microsoft .NET Core工具(预览版2)14.1.20624.0。

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


1

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


1

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

Visual Studio Installer Projects extensions for VS 2013.

它为我工作



0

我的2美分:按照上述所有救生技巧,我的体验略有不同。我的是VS 2017 Community Edition,安装了一次,我注意到所有这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

0

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

细节

  • 这似乎是一个已知错误,其中包含来自MS的修复程序(截至2020年1月7日)
  • 使用Visual Studio安装程序从VS2019 Pro 16.2(我认为是?)升级到16.4.2后经历
  • 尝试启动nuget控制台和nuget软件包管理器时显示错误
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.