Unable to include oledb32.dll into deployment project


I'm trying to make a deployment and setup project in order to deploy my application. I'm currently having difficulty in deploying my app.
Firstly when i try to use the wizard for the deployment project it searches for all the dependencies and among those oledb32.dll is included. It lists the following when it detect this dependency:

"The following files may have dependencies that cannot be determined automatically. Please confirm that all the dependencies have been added to the project
c:\program files\common files\system\ole db\oledb32.dll"

How do i check the dependecies of this file for my project manually?

When trying to build the solution with the deploy & setup project included it generates an error when oledb32.dll is included in the project. If i exclude it the solution compiles fine.
It generates the following error when compiling with it included:
"oledb32.dll' should be excluded because its source file 'C:\Program Files\Common Files\System\Ole DB\oledb32.dll' is under Windows System File Protection."

I know that the common files folder is read-only and i have tried to remove this but to no use (it actually turns back to read-only as soon as you click ok on the properties window after de-checking it)

So how do i successfully include oledb32.dll into my deployment project?
Please help - I really need to get my deployment working soon.


KjartanM-SDomain ArchitectAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

there are no additional dependencies for oledb32.dll, so you can safely confirm that all (as there are none) have been added.

oledb32.dll SHOULD already be presnet on almost any PC, so you should not need it in your installation package.
KjartanM-SDomain ArchitectAuthor Commented:

Yes, the oledb32.dll is present in the common files folder on the target folder. I don't know if it matters for my program whether oledb32.dll is there already or the setup installs it (and then resides in the application folder of my app.)? (i assume it doesn't matter)

Do you know if it is coz it is already in the common files folder (on all comps??) that it will not be included in the deployment project (that you are not meant to distribute this)?
Something is wrong with my deployment and i would like to know for sure that oledb32.dll's inclusion or exclusion from the deployment has nothing to do with my app not working on target comp. (it works fine when installed on comp used for development)

yes, since oledb32.dll is already installed, your program will be able to find and use it.

but WHY are you using oledb32.dll, when you should be build .NET apps utilizing ADO.NET, which does not rely on OLEDB32.DLL which is a COM library.

what other errors are you getting with our application?



Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
JavaScript Best Practices

Save hours in development time and avoid common mistakes by learning the best practices to use for JavaScript.

KjartanM-SDomain ArchitectAuthor Commented:
Actually not sure why it is using oledb32.dll to be honest.

I developed my app in VB.NET and using a SQL Server 2000 database. I think that i have used the ADO.NET way of connecting to the database.....at least i read the book on ADO.NET by MS press and followed this using sqlDataAdapter and sqlConnection in the System.Data.SqlClient namespace and the DataSet

The only thing i used beside this is a call to the DataLink (to make a datalink file for the connection string) form but even that uses a ADODB connection, but i have commented the whole sub out coz i suspected this caused some trouble in the app but the oledb32.dll still is listed in the dependencies.
I also have a few CrystalReports in the project, with the SQL Server provider selected (could it be this that needs oledb32.dll?)

My app runs fine now when "deployed" to the developing comp.
Trying to deploy it on the target comp (with a clean XP pro installation and .NET Frameworks 1.1 installed) it crashes as i try to launch it:
"This program created an exception that could not be handled."
Then it lists the process id and thread id
The JIT debugger is not present - not sure how to include it or how much it would tell me if it was there.
I basically have no clue to what is causing my program to crash like this. I was under the impression that deploying for .NET was pretty much straight forward. The framework should include what was former distributed in the VB runtime package and included in any deployments.


PS: It can take some time before i am back in the discussion.....bedtime....followed by work

Ralf KlattEmployee in Civil ServiceCommented:
KjartanM-SDomain ArchitectAuthor Commented:

I read the article and tried to deploy a Hybrid solution, but my app still crashes on the target computer just like before.

Ralf KlattEmployee in Civil ServiceCommented:
Well, sorry about the MS article ... I thought it could solve your problem ...

... I wouldn't like to send you on the "mary go round trip" but maybe this one can help you solving your problem:


It describes a vjsharp application problem with the same error message as yours after distribution ... since the problem has been solved with the article it might give you the a push in the right direction ...

Best regards, Raisor
KjartanM-SDomain ArchitectAuthor Commented:
Hi again

Raisor; Looking into that last article of yours and going to experiment with different exception handling.
Correct me if i'm wrong, but isn't simply Exception the "root" of all exceptions in VB.NET? Shouldn't the following catch everything:
catch ex as exception
   'do something
end try

Anyway, a last question if i may. Do any of you know how to get the JIT debugger onto the target comp and whether this will give intelligent info??


It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Languages and Standards

From novice to tech pro — start learning today.