无法在Visual Studio 2012中添加引用'ReferenceManagerPackage'

时间:2013-04-13 09:53:35

标签: windows visual-studio visual-studio-2012 reference

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

包'ReferenceManagerPackage'无法加载。

尝试重新安装Visual Studio 2012,但它仍无效。

以前没有遇到过这个问题。

编辑:        512     2013/04/14 00:49:11.860     错误     视觉工作室     包[CreateManagerPackage]的CreateInstance失败     {48D4A2C1-02AD-4F18-9153-620511BACB7B}     


80131522     无法从程序集“Microsoft.VisualStudio.Shell.Interop.11.0,Version = 11.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”加载“Microsoft.VisualStudio.Shell.Interop.IVsReferenceManager2”类型。   

4 个答案:

答案 0 :(得分:10)

我在安装Visual Studio 2017后出现此错误。

解决方案如下。

  1. 启动Developer Command Prompt for VS 2017
  2. CD C:\Program Files\Microsoft Visual Studio\2017\Community\Common7\IDE\PublicAssemblies
  3. 运行gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll
  4. 您现在应该看到

    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非常诱人,这将抑制错误和此路径,所以我想我会将其发布在此处以供参考。

答案 1 :(得分:5)

我刚刚遇到了同样的错误(我是如何得到它的)并且将组件添加回GAC对我来说是个窍门。从VS 2012命令提示符(作为管理员)我输入...

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

现在,我的情况有所不同,我不得不卸载VS 2012 Update 2(因为它搞砸了我的源代码控制,我无法检查任何内容)。在系统恢复到较早的日期之后,我无法在VS 2012中打开添加引用对话框。我在磁盘上搜索了这个DLL,但它已经不见了,所以我从另一台机器复制它,将它添加到GAC并瞧,我又回来了又跑了。

答案 2 :(得分:2)

之前我遇到过这个问题。如果我记得这个的原因,基本上你在你的gac中有那个特定的二进制文件。我猜你最近更新了Visual Studio。虽然它在磁盘上修补了dll,但它很可能是从gac加载的dll,它尚未更新。只需重新调整dll就可以了。

修改

对不起,那是我的坏事。 regac不是一个实际的命令,我只是说你必须再次将项目添加到gac中。

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

答案 3 :(得分:0)

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

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