Uninstall problems with Office PIA

G

Guest

Hello,

I've developed a solution with VS2003, which automates Excel XP. I created a
setup project featuring install of the Primary Interop Assembly
'microsoft.office.interop.excel.dll' in the GAC. I added a condition: If the
dll already exists (correct version) in the GAC then a new install will be
canceled. This condition run. But if I uninstall my program, the entry in the
GAC will be removed. Why?
 
W

Willy Denoyette [MVP]

Maik said:
Hello,

I've developed a solution with VS2003, which automates Excel XP. I created
a
setup project featuring install of the Primary Interop Assembly
'microsoft.office.interop.excel.dll' in the GAC. I added a condition: If
the
dll already exists (correct version) in the GAC then a new install will be
canceled. This condition run. But if I uninstall my program, the entry in
the
GAC will be removed. Why?

You should not add the condition, just add the assembly to the GAC, if this
version is already installed it's reference count will be incremented. So
when you uninstall you won't delete the assembly from the GAC, you only
decrement the reference count.

Willy.
 
G

Guest

I've solved the problem. But I have another Question. How can I check if my
assembly in the GAC is used by another program? I use this information for
the uninstall procedure.
 
G

Guest

Thanks. I've deleted the condition. The setup runs perfect.

I have thought out following setting. I install a new Primary Interop
Assembly with my setup. After two weeks a second program refers to this
assembly. If I uninstall my program, will the assembly be removed from the
GAC?

Maik
 
W

Willy Denoyette [MVP]

Maik said:
I've solved the problem. But I have another Question. How can I check if
my
assembly in the GAC is used by another program? I use this information for
the uninstall procedure.

You don't have to care about it, each GAC assembly is ref counted, when you
install an assembly (same version) it's counter is incremented if already
present else it's set to 1.
If you uninstall the ref counter is decremented and the assembly will be
removed when the ref counter reaches 0.

Willy.
 

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