1

From Prerequisites on the setup property pages, I selected the option to Download prerequisites from the component vendor's web site

There is no Windows Installer 4.5 in the prerequisites to install option..

because every im installing my setup using the sqlexpr_x64_ENU.exe in custom actions to install, run the setup after the extracting sqlserver it pops up the window says

There is a problem with this Windows Installer package. Aprogram run as part of the setup did not finnish as expected. Contact your support personnel or package vendor

im using VS2017 on windows 10

PhilDW
  • 20,260
  • 1
  • 18
  • 28
eSooner
  • 41
  • 5

2 Answers2

2

Exclude MSI Engine: You should not include Windows Installer 4.5 with any package these days. This runtime is from back in the day of Windows Vista - we are long since on version 5. Windows Installer should be deployed only via Windows Update as of today - in my opinion. Leave the runtime out of your setup.

No Concurrency: You can not run an MSI setup from within another MSI setup via a custom action. This is due to technical restrictions. There is a mutex set when an MSI runs its actual installation sequence, and triggering another installation sequence from within it will fail. A similar answer on the topic.

Setup.exe Launcher: What you need is to install your pre-requisites via a setup.exe launcher instead. This runs installations in serial, not in parallel. Which version of SQL Server are you installing? I see only a couple of versions available in the Visual Studio Installer Project launcher.

Other tools have features to allow you to install a setup.exe with embedded packages of various kinds in sequence. I have explained a myriad of times how to do this in previous answers. Here are just a few that I found quickly:

Stein Åsmul
  • 39,960
  • 25
  • 91
  • 164
  • umm.. im using sqlexpress server 2014 – eSooner Sep 04 '18 at 11:29
  • OK, I don't see that in the list of available pre-requisites, so I assume you have to download that runtime on your own and find some way to install your own MSI and the prerequisites in sequence. It seems there used to be a way to add VS Installer Projects prerequisites - *The Bootstrap Manifest Generator* - but [even MSI expert PhilDW seems unsure if it is still available](https://stackoverflow.com/a/50977260/129130). The links I provided might be of help choosing a tool that can help you. Please read the first one at least. – Stein Åsmul Sep 04 '18 at 16:57
  • It is actually the second to last link towards the end of my answer that I would like to ask you to read. [This one](https://stackoverflow.com/questions/52125498/combine-exe-and-msi-file-in-one-installer/52126911#52126911). – Stein Åsmul Sep 04 '18 at 17:01
  • @eSooner - It's unclear (to me at least) what that comment is looking for help with. Stein's answer gives you a wealth of materials to look through the address kicking off other installers (which is what you need to do for SQL Server Express). Your comment reads kind of like "but I'm wearing brown shoes" - that may be true, but you haven't addressed why this answer does/does not help you out here. – Damien_The_Unbeliever Sep 04 '18 at 17:11
1

The general situation:

  1. The problem is not Windows Installer 4.5, it's the fact that you are trying to do a recursive MSI install (the SQL one from inside yours) which is not allowed and will fail.

  2. The MSI 4.5 engine is pretty much obsolete, about 10 years old, and anyway it's not the issue, and it's not clear why you believe it is. But it IS in the Prerequisite list on my VS 2017 setup project prerequisites - see 3 - even though you almost certainly don't need it.

  3. There are some SQL Express options available in the Prerequisites of the VS setup project - right click the project in solution explorer and choose Properties, then Prerequisites.

PhilDW
  • 20,260
  • 1
  • 18
  • 28
  • Hi Phil, I was just adding a comment below linking to your description of the *Bootstrap Manifest Generator*. A component I had never heard of before I read the answer of yours I link to (see comment to my answer). And the OP is using SQL Express Server 2014 - which is not available as a prerequisite I think. – Stein Åsmul Sep 04 '18 at 17:04