Question

I am getting this error when I am trying to depoly my application on a target machine.

I googled and found that some of the dll's need to be registered (that are used in my application)

So, I copied the dll's to System32 and did regsvr32

I then got this error

Interop.ShockwaveFlashObject.dll was loaded bt DllRegisterServer entry point was not found. The file cannot be registered

And one strange thing is that, the application doesn't work on only one machine. I tested on 10 different machines and everything worked well. It did not work on only one machine.

Can someone please help me on this?

Was it helpful?

Solution

The Interop dll doesn't need to be registered it effectively contains a pointer to an existing COM registered object.

If it follows the usual naming convention it looks like ShockwaveFlashObject.dll is not registered on the machine (this would be the DLL you should run regsvr32 against). Presumably you need to install Shockwave/Flash (and/or check the version installed is the right one if you believe it's already on the box).

OTHER TIPS

For instance, you can run cmd as admin and browse to the system32 dir and run the following:

for %1 in (*.dll) do regsvr32 /s %1

and

for %1 in (*.ocx) do regsvr32 /s %1

That interop dll is not a COM dll which needs to be registered with regsvr32.dll, it is an interop dll which manages the link between the COM stuff and the managed stuff, I believe.

Probably you need to register some other dll (ie any & all COM dlls, probably ShockwaveFlashObject.dll) or you have some other missing dependency. what is different about the machine on which it doesn't work compared to the machines which it does work on? Are all dependencies installed on all machines (like flash?) Are the os's different? Maybe some newer os's don't have all of the old dependencies that older machines have.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top