|
I tried to deploy a VB 2008 application using ClickOnce but I ran into a snag that I can't get past. Initially, the program used an Access 2007 database, which I included in the ClickOnce Applications. Visual Studio is on my Vista laptop with Framewlrk 3.5 and it runs fine. However, when I try to install it on my XP desktop, I'm having problems.
First, Framework 3.5 downloaded fine, and I assume that's okay. However as soon as the program loads, I get a dialog saying an 'Unhandled exception has occurred in your application.......The "Microsoft ACE OLEDB 12.0" provider is not registered on the local machine.
I did some research and it appeared that the computerdidn't have Office 2007 drivers, so I included AccessDatabaseEngine.exe also. However, even after including this I kept getting the same message. Finally, saved my databases in 2003 format with the .mdb name. I then went through my entire code and pulled all references to Provider=Microsoft.ACE.OLEDB.12.0;Data Source= and replaced it with Provider=Microsoft.Jet.OLEDB.4.0;Data Source=. Despite this, I'm still getting the same error after deployment, and at this point I don't know what else to do.
Thank you in advance! | | rolenta Thursday, June 11, 2009 5:01 AM | I suspect youneed to provide some kind of drivers (Jet for Access? Is that still around) and install them in the GAC. Not all dll's can be included locally to the deployment and work; some really do have to be installed in the GAC.
So you need to find a redistributable or installation package for what's missing (mdac components?). Then you can use the Bootstrapper Manifest Generator to add it to the prerequisite list in Visual Studio. And then you can deploy it as a prerequisite, and it will install prior to the ClickOnce application.
post from Guyer about his BMG http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/92d68fc3-3c00-4435-9d45-f781aad89ad1
Instructions on using it: http://jcrawfor74.wordpress.com/2008/02/27/bootstrap-manifest-generator-how-to-custom-pre-requisites/
RobinDotNet Click here to visit my ClickOnce blog!- Marked As Answer byAland LiMSFT, ModeratorWednesday, June 17, 2009 11:39 AM
-
| | RobinDotNet Thursday, June 11, 2009 6:40 AM | Sorry for the late response. I simply changed to an Access 2003 database and that cleared up my problems - Marked As Answer byAland LiMSFT, ModeratorThursday, July 09, 2009 4:18 PM
-
| | rolenta Thursday, July 09, 2009 4:10 PM | I suspect youneed to provide some kind of drivers (Jet for Access? Is that still around) and install them in the GAC. Not all dll's can be included locally to the deployment and work; some really do have to be installed in the GAC.
So you need to find a redistributable or installation package for what's missing (mdac components?). Then you can use the Bootstrapper Manifest Generator to add it to the prerequisite list in Visual Studio. And then you can deploy it as a prerequisite, and it will install prior to the ClickOnce application.
post from Guyer about his BMG http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/92d68fc3-3c00-4435-9d45-f781aad89ad1
Instructions on using it: http://jcrawfor74.wordpress.com/2008/02/27/bootstrap-manifest-generator-how-to-custom-pre-requisites/
RobinDotNet Click here to visit my ClickOnce blog!- Marked As Answer byAland LiMSFT, ModeratorWednesday, June 17, 2009 11:39 AM
-
| | RobinDotNet Thursday, June 11, 2009 6:40 AM | The machine that I'm trying to install the new application on already has an old VB6 version running on it, already using the same databases, so the drivers are already installed.
Also, the issue appears to be the drivers for Office 7. But I have removed all references to my Access 2007 database from the project and replaced it with an Access 2003 database. Yet the ACE OLEDB 12 message still appears.
By the way, I just tried the installation at work which is also an XP machine running Office 2003. I got an error message saying it couldn't find the database. SO I suspect that the message I'm getting on my home machine is from something that's sitting in my machine from one of my prior attempts at deployment, but I don't know what it is or how to get rid of it. | | rolenta Thursday, June 11, 2009 12:16 PM | Hi rolenta,
I think you need to follow RobinDotNet’s advice at first, which means add AccessDatabaseEngine.exe to the prerequisite.
If you wanted to find out whether your program depends on Access 2007, you can move your solution to a new machine where Access 2007 is not installed. You can test whether it works on the new machine. If it does not work, you can debug the program to trace the errors and remove the codes which depends on Accesss 2007.
Let me know if this helps.
Aland Li
Please mark the replies as answers if they help and unmark if they don't. This can be beneficial to other community members reading the thread. - Marked As Answer byAland LiMSFT, ModeratorWednesday, June 17, 2009 11:50 AM
- Unmarked As Answer byAland LiMSFT, ModeratorWednesday, June 17, 2009 11:50 AM
-
| | Aland Li Tuesday, June 16, 2009 5:06 AM | Sorry for the late response. I simply changed to an Access 2003 database and that cleared up my problems - Marked As Answer byAland LiMSFT, ModeratorThursday, July 09, 2009 4:18 PM
-
| | rolenta Thursday, July 09, 2009 4:10 PM |
|