ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

我该如何解决这个问题?

有谁知道为什么会出现这个问题?

w
w00ngy

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


也为我工作,但对于 VS Desktop Developer 的快速版本,我在 ...\AppData\Local\Microsoft\WDExpress 中找到了缓存数据
删除该文件夹中的所有文件后,我无法打开我的 c++ 文件,当我恢复除 Microsoft.VisualStudio.Default.cache 以外的这些文件时,然后重新打开我的解决方案,然后一切恢复正常。
删除 Microsoft.VisualStudio.Default.cache 文件解决了问题
@alexo,在 vs 2012 上安装 .net 4.5.1 开发包后出现在我面前
此扩展程序一键自动为您执行此操作(包括重新启动 VS):清除 MEF 组件缓存 visualstudiogallery.msdn.microsoft.com/…
M
Macmade

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

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

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


如果删除此文件夹中的所有内容,c++ 文件可能无法打开。
这是救命的。谢谢阿南达。
T
They call me Trinity

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


P
Peter Mortensen

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

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

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

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


这与 the highest-voted and accepted answer 以及其他一些当代答案相同。
P
Peter Mortensen

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

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

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

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

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


P
Peter Mortensen

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

这是我的source


Visual Studio --EXPRESS-- 有不同的位置。检查此线程中的其他答案。
就我而言,它发生在 VS2015 社区中安装 xamarin 扩展之后。删除后一切顺利。我将其删除在与此答案相同的位置。工具 > 扩展和更新
P
Peter Mortensen

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

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

在我的电池用完为 vs2013 安装相当大的 xamarin 更新后,我遇到了这种情况。进入这个文件夹,重命名 ComponenetModelCache 并在重新启动时重新创建文件夹并修复它。泰
还为我解决了另一个错误:'visual c++ package' failed to load
J
Jorgesys

对于 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

P
Peter Mortensen

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

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

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


我正在删除指定的文件夹(Win 8.1,VS 2013 Prem),每次我关闭并重新打开 VS 时它都会回来。不幸的是,这也不起作用。
在尝试了几种解决方案之后,确实是解决了我的问题的技巧。因为 VS2013 的 VS 命令提示符不容易找到,所以这里是它的路径:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts
devenv /setup 为我修复了 VS 2015 Pro 的崩溃问题。 ComponentModelCache 没有修复它。
哇 - 没想到这会奏效,但确实如此! VS 2017 社区版。
A
Ali

删除 ComponentModelCache 文件夹内容。

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

C
C. Molendijk

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

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


f
fose

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

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

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

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


R
Rouse02

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


+1 为 %LOCALAPPDATA% ,我使用的是 %AppData% 并没有找到像 ComponentModelCache 这样的文件夹。但是使用 %LOCALAPPDATA% 我可以得到它。
P
Peter Mortensen

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

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

Update for Microsoft Visual Studio 2012 (KB2781514)

它对我有用。


+1 - 很棒的发现!这为我解决了这个问题。这是合法的解决方案,而不是像黑客一样删除可能在未来产生影响的缓存文件。
除了这个问题在 VS2015 中仍然存在,所以这不太可能是“合法的解决方案”。
E
El Jefe

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

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

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


R
Robotnicka

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

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

u
user2063329

我有 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


e
emy

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

click for source.


3
3 revs, 2 users 58%

我正在使用 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 年发生在我身上,这是我机器上唯一安装的 Visual Studio - 进行了修复,正如您通过“卸载程序”面板提到的那样,它已修复。
我最初也没有通过使用 %AppData% 找到该文件夹,但通过使用 %LOCALAPPDATA% 我可以导航并找到该文件夹
宾果游戏,,,,这个对我来说是更准确的答案
E
Espo

我在尝试打开文件时在 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 应用程序

谢谢


M
Matty

两年后,我收到了相同错误消息的错误。不过这次是一个不同的问题,与 .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\\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 上的帖子解决了这个问题。


R
Revious

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


V
Vivekh

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

Visual Studio Installer Projects extensions for VS 2013.

它对我有用


P
Peter Mortensen

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

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

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

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


M
Marcelo Scofano Diniz

我的 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

w
w00ngy

删除 ComponentModelCache 对我不起作用。 重新安装 VS 2019 多亏了 this Microsoft 支持线程上的建议。

细节

这似乎是一个已知的错误,有来自 MS 的修复(截至 2020 年 1 月 7 日)

使用 Visual Studio Installer 从 VS2019 Pro 16.2(我认为是?)升级到 16.4.2 后体验

尝试同时启动 nuget 控制台和 nuget 包管理器时显示错误