Harini
Sep 18th, 2002, 01:59 PM
I created an application using msado and mscomm object for a communication project. When I packaged it, it gave an error saying it couldn’t find dependency files for msado25.tlb. I chose to ignore it and packaged it. When installing, it gave an error at the end saying ‘Error while registering msado25.tlb’. I clicked ignore and installed. Of course, it worked fine on my system, which has the full Visual Studio installed. But on my client’s machine, it wouldn’t work. Generated error 430. I looked up 430 in msdn. It says it occurs for components compiled using project compatibility, that I should change to binary compatibility. But the only external components I am using are MSADO and mscomm. I know I can’t change the compatibility options for these in my application, so what do I do?
I even installed Visual Studio in his machine (no way a solution I know), but my code (Source Code itself) would not run. Could it be because his machine has an AMD processor and mine is Intel? When I ran the project, it gave this error message. I clicked debug and it went to the record set instantiating line.
This is what msdn says about error no. 430
SYMPTOMS
Instantiating a class within a server that has been previously compiled but is now running within the Visual Basic IDE, causes run-time error 430.
CAUSE
When a Visual Basic project is compiled with Project Compatibility, the CLSID remains the same while the IID changes for subsequent builds. Therefore, attempting to create the specific class in the "compatible" server generates the following error because the specific IID has changed and no longer exists:
Run-time error '430':
Class does not support Automation or does not support expected interface
RESOLUTION
Use BinaryCompatibility.
And why, when I reference MSADO library, vb uses the tlb file instead of the dll file? Should I explicitly distribute the dll file with the package? Which version then? And how do I solve the dependency problem with the msado25.tlb? Is that the reason for error 430?
I haven’t tried this app on other systems without vb. And the only option I have is a floppy disk, and believe me, I hate them. In fact I made two copies of my program today in 2 separate floppies. And neither would open in the other machine. I have come across this a lot of times.
This is a BIG query, I know, but I hope you people out there read it and help me. This is not a huge application in anyway, but I still had to spend a lot of time on it. And to have it working smoothly on my own system and completely hang in the target system – well I can’t express how it feels, but it is definitely not nice.
:)
I even installed Visual Studio in his machine (no way a solution I know), but my code (Source Code itself) would not run. Could it be because his machine has an AMD processor and mine is Intel? When I ran the project, it gave this error message. I clicked debug and it went to the record set instantiating line.
This is what msdn says about error no. 430
SYMPTOMS
Instantiating a class within a server that has been previously compiled but is now running within the Visual Basic IDE, causes run-time error 430.
CAUSE
When a Visual Basic project is compiled with Project Compatibility, the CLSID remains the same while the IID changes for subsequent builds. Therefore, attempting to create the specific class in the "compatible" server generates the following error because the specific IID has changed and no longer exists:
Run-time error '430':
Class does not support Automation or does not support expected interface
RESOLUTION
Use BinaryCompatibility.
And why, when I reference MSADO library, vb uses the tlb file instead of the dll file? Should I explicitly distribute the dll file with the package? Which version then? And how do I solve the dependency problem with the msado25.tlb? Is that the reason for error 430?
I haven’t tried this app on other systems without vb. And the only option I have is a floppy disk, and believe me, I hate them. In fact I made two copies of my program today in 2 separate floppies. And neither would open in the other machine. I have come across this a lot of times.
This is a BIG query, I know, but I hope you people out there read it and help me. This is not a huge application in anyway, but I still had to spend a lot of time on it. And to have it working smoothly on my own system and completely hang in the target system – well I can’t express how it feels, but it is definitely not nice.
:)