views:

1169

answers:

4

Hi guys.

I have a .NET application which uses an accdb file (MS Access 2007 format) as its database. To install this app on another machine I need to install the Access engine on that machine. Microsoft has this file: AccessDatabaseEngine.exe which includes the engine, but when extracted during installation, runs another .msi installer.

As you can guess, since this msi is run during the installation of another msi (my app's installer) the Access engine setup fails with error 1500: "Another installation is in progress. Finish that one before continuing this one..."

I found the Runtime for Access 2007 as well, and it does install the engine, but the Runtime package is again an msi installer which means I'm still having the same problem.

Any ideas to include the engine in my app's installer?

+2  A: 

You probably want to have a look at this article: Adding Programs to Access 2007 Deployment Packages

The Access Developer Extensions offer a basic but functional installer that can take care of the general deployment scenarios.

Renaud Bompuis
Developer Extensions are useless here, since they need Access 2007 to be installed on the machine. I found the Runtime for Access 2007 as well but it is again an msi installer, which means I'm still having the same problem.
TheAgent
+1  A: 

The best think would be to build your own msi pack including needed access files. You could use a product like VERITAS Wininstall. You have this "Discover" method that allows you to build a fully operationial .msi file by (1) taking 2 snapshots of your system (one before the installation, one after) then (2) creating the .msi file corresponding to the installation process.

Anyway, I'd advise you to have multiple packs, one for Access, that can be installed with a "for all users" option when the computer joins your company's domain, one for your app. By doing so you will be able to distribute new versions of your app without redistributing Access, which takes a few mega of space as well as a few minutes of user's most precious time).

Sio if Microsoft already delivers an Access Runtime msi package, just keep it 'as is' and distribute it automatically on your network when a new machine joins the domain.

Philippe Grondier
There are no domains in my scenario. I'm making a product to sell on the market,and it is a standalone Winforms app. I need to have an installer for this app, and using methods you described seems too overkill. I'd like to have this "Discover" thing anyway, so do you have a link to download it?
TheAgent
A: 

I wouldn't recommend WinInstall, we have it in my office and we have to keep calling them in to package stuff for us as it's so finiky to use. Some things they haven't been able to package at all. WISE Studio is better or a free alternative is AppDeploy whihc I have heard great things about.

MaSuGaNa
A: 

I found this software called "Bootstrapper Manifest Generator" or BMG. It helps create a prerequisite package using an MSI or EXE installer file, and adds it to VS2008 Prerequisites dialog box in Setup and Deployment projects. Although it's not that user friendly, it does the job. It's on MSDN: code.msdn.microsoft.com/bmg

Thought it's good to save others from going through all the trouble.

TheAgent

related questions