views:

403

answers:

2

We have project PrjDb.dll in vb 6.0 that has a reference to ado 2.5. The project is built on Machine A. Now when we generate an interop for PrjDb.dll on another machine B, we end up with a new ADODB.dll with ver 2.5 in version field instead of linking it with the Primary Interop Assembly adodb.dll ( found under 'Program Files\Microsoft.NET\Primary Interop Assemblies'). The problem is that when i deploy my application, it now asks for this newly generated adodb.dll. And i don't want to ship it.

Even if I provide the adodb.dll path in the command line, it still generates the new interop for AdoDB. I tried using the switch /strict then it says the it can not resolve references using the AdoDB.dll that i want it to use.

This doesn’t happen if we generate interop on the same machine where we built PrjDb.dll. Rather on any machine other than machine B, it automatically picks the PIA for AdoDB.

Any idea whats going on machine B when we generate the interop for PrjDb.dll?

+1  A: 

Can you not use ADO.Net instead since you are already on .Net? That's one solution to various ADODB interop errors I found. Feel free to clarify so we can help you get a "real answer".

(http://bytes.com/forum/thread470736.html) (from google search: adodb interop .net)

devinmoore
A: 

:( I wish I could but PrjDb.dll is a legacy dll that i wont like to re-write at this crucial stage. But the actual problem is not with PrjDb.dll but with the tlbimporter that can't somehow find the PIA on that machine and generates a new one. As i told earlier that this problem only occurs on a particular machine. If I can't find an answer, i might format my build machine but that will the last resort.