5

最近我遇到了这个问题,每当我右键单击“添加引用...”时,它都会给我一个错误,如下所述。

包 'ReferenceManagerPackage' 未能加载。

尝试重新安装 Visual Studio 2012,但它仍然无法正常工作。

之前没遇到过这个问题。

编辑:512 2013/04/14 00:49:11.860 错误 VisualStudio CreateInstance 包 [ReferenceManagerPackage] {48D4A2C1-02AD-4F18-9153-620511BACB7B} 失败


80131522 无法从程序集“Microsoft.VisualStudio.Shell.Interop.11.0,版本=11.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”加载类型“Microsoft.VisualStudio.Shell.Interop.IVsReferenceManager2”。

4

4 回答 4

13

安装 Visual Studio 2017 后,我刚刚收到此错误。

解决方法如下。

  1. 发射Developer Command Prompt for VS 2017
  2. CD C:\Program Files\Microsoft Visual Studio\2017\Community\Common7\IDE\PublicAssemblies - 或 - C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\PublicAssemblies
  3. gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll

你现在应该看到

Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly successfully added to the cache

重新启动 Visual Studio,希望一切都会好起来,您可以添加引用。

该文件C:\Users\USER\AppData\Roaming\Microsoft\VisualStudio\15.0_cc9cc69a\ActivityLog.xml对于调试可能导致问题的任何其他程序集很有用。令人讨厌的是,当被要求不再看到错误消息时,点击它是非常诱人No的,这将抑制错误和这条路径,所以我想我会把它贴在这里以供参考。

于 2017-03-14T19:03:46.903 回答
5

我刚刚遇到了同样的错误(我得到它的方式不同)并将程序集添加回 GAC 对我来说是成功的。从 VS 2012 命令提示符(以管理员身份)我输入...

gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll

现在,我的情况有所不同,我必须卸载 VS 2012 Update 2(因为它弄乱了我的源代码控制,我无法签入任何内容)。在将系统还原到较早的日期后,我无法在 VS 2012 中打开添加引用对话框。我在磁盘上寻找这个 DLL 但它已经消失了,所以我从另一台机器上复制了它,将它添加到 GAC 和瞧,我又恢复了运行。

于 2013-05-15T22:47:17.680 回答
3

我以前有这个问题。如果我记得这样做的原因,基本上你的 gac 中有那个特定的二进制文件。我猜你最近更新了 Visual Studio。尽管它修补了磁盘上的 dll,但它很可能是从尚未更新的 gac 加载 dll。只需 regac dll 就可以了。

编辑

对不起,那是我的错。regac 不是一个实际的命令,我只是意味着你必须再次将项目添加到 gac。

启动 Visual Studio 命令提示符并运行此命令gacutil /i <path_to_assembly>

于 2013-04-14T08:35:54.133 回答
0

在我的工作站上,我没有 VS Shell Interop DLL,因为我没有安装 Visual Studio SDK。要执行此壮举,您需要从Download Center -> Microsoft Visual Studio 2012 SDK 获取 SDK。我敢打赌,一旦安装,问题就会消失。

为了真正解决这个问题,我会附加另一个 Visual Studio 或其他一些调试器,并将其设置为在第一次出现类型加载异常时中断。然后检查您的调用堆栈并在此处报告。

于 2013-10-14T15:09:24.583 回答