No Image

Classfactory cannot supply requested class

СОДЕРЖАНИЕ
443 просмотров
10 марта 2020

Check if you have following three dlls present in ‘[Windows]System32’ folder:

msxml3.dll
msxml3a.dll
msxml3r.dll

This error is due to the fact that the licensing module could not find msxml parser on your system which is supplied by above three dll’s

The first thing to try is registering the dll:
1. Go to "Start->Run", type cmd and press enter to access the DOS console.
2. Change path to [Windows]/System32 folder where you have all the three dlls installed
3. Type in ‘regsvr32.exe msxml3.dll" and press Enter.

It should display a success message box.
After that please try to activate the license again.

Alternatively the version of Windows Script you have on your Windows 2000 or Windows XP is outdated

Download the latest Windows Script from Microsoft

In Visual Studio 2008, all of a sudden, when I try to Add Existing Item to a project, I’m getting this error:

The operation could not be completed. ClassFactory cannot supply requested class

Since I installed VS 2010 Beta 2 yesterday, I just now did a system restore to before that point to see if that was the cause. It wasn’t.

I think I know what caused this, but I don’t know how to fix it. I think it was caused by trying to fix another Visual Studio problem, as described in this thread:

I ran the long procedure described in the post starting with "OK Ladies and Gentleman, here is what we have found;". It fixed a problem I was having with Server Explorer not working, but I think it may have caused my current problem due to a permissions issue.

Читайте также:  Укажи наибольшее целое значение функции

If so, does anyone know what permission I need to fix? Is there a way I can find out? Or do you have any other ideas about what I can do to solve this? (I haven’t tried a repair install yet, because I’m hoping for a solution that won’t take that long.)

6 Answers 6

Enabling the "Disable visual themes" checkbox on the devenv.exe compatibility settings causes this issue.

This is unfortunate, because the Visual Studio 2008 UI is noticeably more responsive with visual themes disabled.

Using the Process Explorer from these SysInternals tools you can see what files and registry settings applications attempt to access, and filter for failed attempts. It is an overwhelming amount of information at first, but it gives you a pretty complete picture of everything an application is attempting to do, and you can begin to look at failures to open/read files/registry settings to help determine the cause of problems like this. Then of course you can look at the permissions on each file or registry key(yes, registry keys have permissions just like files, and this can cause problems so watch out for that) and loosen the permissions to try and resolve the problem.

Edit: You should check the permissions for those keys. Note that you have permissions for different users/roles. If I belong to both administrators and users groups, and the administrator group has Read permissions, but the user group has a Deny checkbox for read permissions, then the deny actually takes precedence and will prevent your account from accessing the registry key. The same concept goes for "Full Control" permissions in the case that the program is trying to write a value to the registry key. I think there should be something in the failure that indicates what it was trying to do with the key.

Читайте также:  Условное форматирование минимальное значение

I also have it under "HKEY_LOCAL_MACHINESOFTWAREClassesCLSID" . and under that there is this, HKEY_LOCAL_MACHINESOFTWAREClassesCLSID\InProcServer32 which has a default value of "%SystemRoot%System32comdlg32.dll" . This is how an application finds the dll for a class. It looks it up via the GUID, and the path tells it what DLL to load the class from. So make sure that the path listed actually has that DLL there, and the DLL file has appropriate permissions as well. Again, check all the groups/roles that are listed in the permissions dialog to ensure that none have a checkbox in the Deny column, and that the Allow column is checked to allow read access for at least one of the roles you belong to.

Using Visual Studio 2008 I first encountered this when trying to open a standard save file dialog box in visual basic. So far I’ve worked around it after fruitless searching. Now I find that any action which would cause a save/open dialog (eg. ctrl-O) also fails. I’ve searched more and still don’t know how to fix it.

Stuff I do know: It’s not a Visual Studio error, it apparently can occur in any number of other applications (which is why searching for it is annoying)

It’s either .NET or COM related, I tried reinstalling all of .NET with no luck, and I’ve never mucked around with COM ever, I don’t really even know what it is.

Something is missing, misplaced, or it could be DLL version issues.

I really don’t want to deal with uninstalling VS2008, or MS Office (as one result I found suggested) or any other big application.

Читайте также:  Программа для распознавания жесткого диска

4 Answers 4

So, somebody, somewhere is trying to CoCreate some object that it (thinks) it needs to do its job. This may or may not be a Visual Studio object. Since it manifests in the Save / Open dialog it could very well be a shell object.

The most likely explanation is the registry entry for the object has been corrupted in some way, or the dll that exports the object is corrupted in some way. For the latter it could be missing completely, or just in a bad state for some reason.

One thing you can try doing is running regsvr32 on likely candidate DLLs, but that’s just shooting in the dark.

Another, more advanced option is to attach a debugger (such as ntsd or windbg) to the Visual Studio process it self and set a breakpoint on CoCreateInstance() in the system dll (make sure to look up its exact signature in the header file—it may be #defined to something else). Then get the GUID for the object that it is passing as the argument to CoCreateInstance(). Looking this up in your registry (or a friends registry that doesn’t have this issue) should give you a good idea of what DLL you need to go mess with.

Комментировать
443 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector