代码之家  ›  专栏  ›  技术社区  ›  Ryan Lundy

操作无法完成。ClassFactory无法提供请求的类

  •  1
  • Ryan Lundy  · 技术社区  · 15 年前

    在Visual Studio 2008中,当我尝试向项目添加现有项时,突然出现以下错误:

    操作无法完成。ClassFactory无法提供请求的类

    我想我知道是什么引起的,但我不知道怎么解决。我认为这是由于试图修复另一个Visual Studio问题引起的,如以下线程中所述:

    AnswerEvent log error 4201 - ERROR WMI INSTANCE NOT FOUND

    我运行了帖子中描述的长程序,以“好的女士们先生们,这是我们找到的东西;”开头。它修复了我在服务器资源管理器不工作时遇到的一个问题,但我认为它可能是由于权限问题导致了我当前的问题。

    6 回复  |  直到 15 年前
        1
  •  4
  •   CaseyB jack    14 年前

    启用上的“禁用视觉主题”复选框devenv.exe文件兼容性设置导致此问题。

    http://connect.microsoft.com/VisualStudio/feedback/details/532500/visual-studio-responses-with-classfactory-cannot-supply-requested-class

    这是不幸的,因为visualstudio2008ui在禁用视觉主题的情况下响应速度明显更快。

        2
  •  1
  •   AaronLS    15 年前

    从中使用Process Explorer these SysInternals tools 您可以查看应用程序尝试访问的文件和注册表设置,并筛选失败的尝试。一开始这是一个庞大的信息量,但它可以让您非常完整地了解应用程序正在尝试执行的所有操作,您可以开始查看打开/读取文件/注册表设置的失败,以帮助确定此类问题的原因。当然,您可以查看每个文件或注册表项的权限(是的,注册表项的权限与文件一样,这可能会导致问题,因此请注意这一点),然后松开权限以尝试解决问题。

    编辑:

    我也在里面 "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7}" . 下面是这个, HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7}\InProcServer32\ 默认值为 "%SystemRoot%\System32\comdlg32.dll" . 这就是应用程序查找类的dll的方式。它通过GUID查找,路径告诉它从哪个DLL加载类。因此,请确保列出的路径中确实有该DLL,并且该DLL文件也具有相应的权限。再次选中“权限”对话框中列出的所有组/角色,以确保在“拒绝”列中没有复选框,并且选中“允许”列以允许您所属的至少一个角色具有读取权限。

        3
  •  1
  •   Dan    14 年前

    好的,我使用的是安装了VS2008的windows7x64。

    为vc++更改的最新设置之一是使用不同的兼容模式(vista sp2)运行它。

        4
  •  0
  •   Dostee    15 年前

    因为我希望有个解决办法 不会花那么长时间。)

    我刚才搜索了几个小时来解决你的问题(看来你也找到了——几乎没有一个相关的论坛没有你的帖子),但没有找到任何你还没有尝试过的针对你症状的方法。

        5
  •  0
  •   Alex Bagnolini    15 年前

    我们通常通过运行以下命令来解决此问题:

    Windows XP操作系统 :

    secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose
    

    :

    secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose
    

    作为管理员

    这将恢复所有注册表权限,这通常会导致大多数WMI问题。

        6
  •  0
  •   bgmCoder    12 年前

    哈!我也有同样的问题,发现 this link ,提出了一个很好的解决方案。以下是摘录:

    以前,我和你一样,我很郁闷,但不是那么心甘情愿,我搜索了很多网页,但没有解决办法,所以我决定调查自己。我的笔记本有一个写字板,但我不使用写字板,所以我关闭了“Tablet PC输入服务”。我 找到了“devenv.exe文件“将执行”wisptis.exe文件". 我知道通常wisptis.exe文件由“Tablet PC输入服务”执行。所以我打开“平板电脑输入服务”试试。结果:让我惊喜和快乐!我的问题解决了!

    然而,我发现了另一个问题: 如果你从一个启动程序启动visualstudio,比如JetToolbar(像我一样),你会得到一个带有经典主题的VS,也就是说,一个普通的经典关闭框,最小化按钮和恢复按钮。但是如果您从“开始”菜单或runbox(只需键入devenv)启动VS,那么它将以正常的主题开始。现在,如果你得到经典的主题,你会得到错误的“开放项目”,等等,如果你得到常规的主题,你没有问题。因此,我自己的问题与我使用的发射器有关。