Error:COM object with CLSID{some hex code} not valid or not regist

G

Guest

Hi

I just made an installer package for an application in .NET which also uses
COM dlls. It seems to work fine on my machine but when tried it on a
co-worker's machine, the application installs, but while running, gives the
following error in the part that must use a certain COM dll:

COM object with CLSID {some hex code} is either not valid or not registered

I know which application is using this dll while the error is generated and
have an inclination about which dll is causing the problem though I'm not
entirely sure about it.

When I tried searching for the given CLSID in the registry with regedit, it
didn't find it anywhere.
There also seem to be a lot of instances of the specified COM dll on the
computer previously installed (of various versions) and some of them seem to
be present from uninstalled components which for some reason didn't uninstall
completely.
It seems like the uninstall did not do all it had to or something and now
there's a bunch of mess on the system and I have no idea how this can be
dealt with.

If anyone has any suggestion regarding this, I would appreciate if he/she
could share that with me

Thanks in advance!
 
N

Nicholas Paldino [.NET/C# MVP]

Shiraz,

Your installer package also needs to include the install package for the
COM dll (if there is one). At the least, it has to include the COM dll in
your install package and have it self-register (or have it in the local
directory if you are using reg-free COM).

Using the interop dll is not enough. You need to have installed the COM
object properly, and then use the interop dll in your project.

Hope this helps.
 
G

Guest

Hi Nicholas

Thanks for the quick reply. With the installer, I had included all the
installation files for this particular application (which btw is an
additional application used by the main application). For some reason, I was
not able to deploy it automatically from my installer, but since I am doing
this for the first time, I did not much care about this and just included the
files necessary for manually installing it.

The manual installation seemed to work, but subsequently we were not able to
resolve the CLISD error I mentioned in my post.

Does this information help ascertaining the problem better? Additionally, if
this helps, I searched my own computer's registry and found out an entry with
the same CLSID as is being given in the error message, but I'm not sure how
to proceed from here.

-----------------------------------------------------------------------------------------------



Nicholas Paldino said:
Shiraz,

Your installer package also needs to include the install package for the
COM dll (if there is one). At the least, it has to include the COM dll in
your install package and have it self-register (or have it in the local
directory if you are using reg-free COM).

Using the interop dll is not enough. You need to have installed the COM
object properly, and then use the interop dll in your project.

Hope this helps.


--
- Nicholas Paldino [.NET/C# MVP]
- (e-mail address removed)

Shiraz said:
Hi

I just made an installer package for an application in .NET which also
uses
COM dlls. It seems to work fine on my machine but when tried it on a
co-worker's machine, the application installs, but while running, gives
the
following error in the part that must use a certain COM dll:

COM object with CLSID {some hex code} is either not valid or not
registered

I know which application is using this dll while the error is generated
and
have an inclination about which dll is causing the problem though I'm not
entirely sure about it.

When I tried searching for the given CLSID in the registry with regedit,
it
didn't find it anywhere.
There also seem to be a lot of instances of the specified COM dll on the
computer previously installed (of various versions) and some of them seem
to
be present from uninstalled components which for some reason didn't
uninstall
completely.
It seems like the uninstall did not do all it had to or something and now
there's a bunch of mess on the system and I have no idea how this can be
dealt with.

If anyone has any suggestion regarding this, I would appreciate if he/she
could share that with me

Thanks in advance!
 
J

Jianwei Sun

Can you register the dll manually using regsvr32 **.dll.

If it works, I think you may need to embed some custom scripts in your
setup.

HTH,
Jianwei
Hi Nicholas

Thanks for the quick reply. With the installer, I had included all the
installation files for this particular application (which btw is an
additional application used by the main application). For some reason, I was
not able to deploy it automatically from my installer, but since I am doing
this for the first time, I did not much care about this and just included the
files necessary for manually installing it.

The manual installation seemed to work, but subsequently we were not able to
resolve the CLISD error I mentioned in my post.

Does this information help ascertaining the problem better? Additionally, if
this helps, I searched my own computer's registry and found out an entry with
the same CLSID as is being given in the error message, but I'm not sure how
to proceed from here.

-----------------------------------------------------------------------------------------------



:

Shiraz,

Your installer package also needs to include the install package for the
COM dll (if there is one). At the least, it has to include the COM dll in
your install package and have it self-register (or have it in the local
directory if you are using reg-free COM).

Using the interop dll is not enough. You need to have installed the COM
object properly, and then use the interop dll in your project.

Hope this helps.


--
- Nicholas Paldino [.NET/C# MVP]
- (e-mail address removed)

Hi

I just made an installer package for an application in .NET which also
uses
COM dlls. It seems to work fine on my machine but when tried it on a
co-worker's machine, the application installs, but while running, gives
the
following error in the part that must use a certain COM dll:

COM object with CLSID {some hex code} is either not valid or not
registered

I know which application is using this dll while the error is generated
and
have an inclination about which dll is causing the problem though I'm not
entirely sure about it.

When I tried searching for the given CLSID in the registry with regedit,
it
didn't find it anywhere.
There also seem to be a lot of instances of the specified COM dll on the
computer previously installed (of various versions) and some of them seem
to
be present from uninstalled components which for some reason didn't
uninstall
completely.
It seems like the uninstall did not do all it had to or something and now
there's a bunch of mess on the system and I have no idea how this can be
dealt with.

If anyone has any suggestion regarding this, I would appreciate if he/she
could share that with me

Thanks in advance!
 
G

Guest

Yes, manually registering the dll works. I was a bit skeptical about this as
I wasn't sure which dll was causing the problem, but I was able to narrow
down the probables to 2 by today, so that wasn't much trouble for trying out.

Since these dlls were locate in another msi package (written by someone
else), which I was installing with my msi file (as nested msi), I was
expecting them to get registered automatically, which they were on my
computer but for some reason, they didn't on a particular machine (I don't
know if it's a problem with the machine installer/un-installer or just this
additional msi package, though I suspect it's the machine). So, I finally
grabbed the needed dlls from this other application and put them in my
installer.

Now, I just have to figure out a way to have my installer register these
dlls on installation and like you suggested, I would likely need to embedd a
custom script to my msi file, although I still have to figure out how to do
that...

Anyways, thanks for the help!

------------------------------------

Jianwei Sun said:
Can you register the dll manually using regsvr32 **.dll.

If it works, I think you may need to embed some custom scripts in your
setup.

HTH,
Jianwei
Hi Nicholas

Thanks for the quick reply. With the installer, I had included all the
installation files for this particular application (which btw is an
additional application used by the main application). For some reason, I was
not able to deploy it automatically from my installer, but since I am doing
this for the first time, I did not much care about this and just included the
files necessary for manually installing it.

The manual installation seemed to work, but subsequently we were not able to
resolve the CLISD error I mentioned in my post.

Does this information help ascertaining the problem better? Additionally, if
this helps, I searched my own computer's registry and found out an entry with
the same CLSID as is being given in the error message, but I'm not sure how
to proceed from here.

-----------------------------------------------------------------------------------------------



:

Shiraz,

Your installer package also needs to include the install package for the
COM dll (if there is one). At the least, it has to include the COM dll in
your install package and have it self-register (or have it in the local
directory if you are using reg-free COM).

Using the interop dll is not enough. You need to have installed the COM
object properly, and then use the interop dll in your project.

Hope this helps.


--
- Nicholas Paldino [.NET/C# MVP]
- (e-mail address removed)


Hi

I just made an installer package for an application in .NET which also
uses
COM dlls. It seems to work fine on my machine but when tried it on a
co-worker's machine, the application installs, but while running, gives
the
following error in the part that must use a certain COM dll:

COM object with CLSID {some hex code} is either not valid or not
registered

I know which application is using this dll while the error is generated
and
have an inclination about which dll is causing the problem though I'm not
entirely sure about it.

When I tried searching for the given CLSID in the registry with regedit,
it
didn't find it anywhere.
There also seem to be a lot of instances of the specified COM dll on the
computer previously installed (of various versions) and some of them seem
to
be present from uninstalled components which for some reason didn't
uninstall
completely.
It seems like the uninstall did not do all it had to or something and now
there's a bunch of mess on the system and I have no idea how this can be
dealt with.

If anyone has any suggestion regarding this, I would appreciate if he/she
could share that with me

Thanks in advance!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top