【问题标题】:Error message "No exports were found that match the constraint contract name"错误消息“未找到与约束合同名称匹配的导出”
【发布时间】:2013-07-09 21:52:57
【问题描述】:

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

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

我该如何解决这个问题?

【问题讨论】:

  • 不客气,很高兴帮助您摆脱这个烦人的问题。
  • 您不应该将您的答案作为答案发布在下面吗?通过这种方式,如果它对我们有用(它对我有用),我们可以对其进行投票;-)
  • 有人知道为什么会出现这个问题吗?

标签: visual-studio


【解决方案1】:

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

【讨论】:

  • 也为我工作,但对于 VS Desktop Developer 的快速版本,我在 ...\AppData\Local\Microsoft\WDExpress 中找到了缓存数据
  • 在该文件夹中 delete all 后我无法打开我的 c++ 文件,当我恢复除 Microsoft.VisualStudio.Default.cache 之外的这些文件时,然后重新打开我的解决方案,然后一切都恢复到正常。
  • 删除 Microsoft.VisualStudio.Default.cache 文件解决了问题
  • @alexo,在 vs 2012 上安装 .net 4.5.1 开发包后出现在我面前
  • 这个扩展会自动为你一键完成(包括重启VS):Clear MEF Component Cache visualstudiogallery.msdn.microsoft.com/…
【解决方案2】:

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

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

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

【讨论】:

  • 如果删除此文件夹中的所有文件,c++文件可能无法打开。
  • 这是救命的。谢谢阿南塔。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

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

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

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        这是我的source

        【讨论】:

        • Visual Studio --EXPRESS-- 有不同的位置。检查此线程中的其他答案。
        • 在我的情况下,它发生在 VS2015 社区中安装 xamarin 扩展之后。删除后一切顺利。我将其删除在与此答案相同的位置。工具 > 扩展和更新
        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

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

          【讨论】:

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

          我在启动 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 社区版。
          【解决方案10】:

          删除 ComponentModelCache 文件夹内容。

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

          【讨论】:

            【解决方案11】:

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

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

            【讨论】:

              【解决方案12】:

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

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

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

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

              【讨论】:

                【解决方案13】:

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

                【讨论】:

                • +1 for %LOCALAPPDATA% ,我使用的是 %AppData% 并没有找到像 ComponentModelCache 这样的文件夹。但是使用 %LOCALAPPDATA% 我可以得到它。
                【解决方案14】:

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

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

                Update for Microsoft Visual Studio 2012 (KB2781514)

                它对我有用。

                【讨论】:

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

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

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

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

                【讨论】:

                  【解决方案16】:

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

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

                  【讨论】:

                    【解决方案17】:

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

                    【讨论】:

                      【解决方案18】:

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

                      click for source.

                      【讨论】:

                        【解决方案19】:

                        我正在使用 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% 我可以导航并找到该文件夹​​
                        • bingo,,,,这个对我来说是更准确的答案
                        【解决方案20】:

                        我在 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 应用程序

                        谢谢

                        【讨论】:

                          【解决方案21】:

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

                          我在 StackOverflow 上找不到答案,但有一个包含解决方法的 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 上的帖子解决了这个问题。

                          【讨论】:

                            【解决方案22】:

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

                            【讨论】:

                              【解决方案23】:

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

                              Visual Studio Installer Projects extensions for VS 2013.
                              

                              它对我有用

                              【讨论】:

                                【解决方案24】:

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

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

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

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

                                【讨论】:

                                  【解决方案25】:

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

                                  【讨论】:

                                    【解决方案26】:

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

                                    详情

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

                                    【讨论】:

                                      猜你喜欢
                                      • 1970-01-01
                                      • 2017-03-06
                                      • 2022-10-06
                                      • 2014-07-13
                                      • 1970-01-01
                                      • 2013-10-13
                                      • 2014-02-17
                                      • 1970-01-01
                                      • 1970-01-01
                                      相关资源
                                      最近更新 更多