Tony, running multiple MSIs is a no-no. 

Windows Installer v4.5 redistributables page here
<http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8483>
gives some useful links, including the Installer Team blog. The various
downloads appear confusing at first glance - but they are upgrade installs
for various operating system versions. But even the instructions poses
questions - as suggested there, it probably best to take a look at the
Windows Installer Start Page on MSDN, here
<http://msdn.microsoft.com/en-us/library/cc185688.aspx> . 

Why v4.5?  

"Windows Installer 4.5 and later can install multiple installation packages
using
<http://msdn.microsoft.com/en-us/library/aa372093.aspx#_msi_transaction_proc
essing_gly> transaction processing. If all the packages in the transaction
cannot be installed successfully, or if the user cancels the installation,
the Windows Installer can roll back changes and restore the computer to its
original state. The installer ensures that all the packages belonging to a
multiple-package transaction are installed or none of the packages are
installed. "

So, it is a worthwhile advance if you don't want to learn WiX, or use NSIS
installer 

  _____  

Ian Thomas
Victoria Park, Western Australia

  _____  

From: [email protected] [mailto:[email protected]]
On Behalf Of Matt Siebert
Sent: Friday, November 11, 2011 9:05 AM
To: ozDotNet
Subject: Re: Visual Studio Installer Silent Installation

 

I've gone down the WiX path myself so I'm not totally familiar with the
setup projects in Visual Studio, but it sounds like you're building an MSI
database for your application and you're trying to launch the .NET install
from this MSI (apologies if I've misunderstood your problem).  If so, then
as you've discovered Windows Installer doesn't allow multiple installers to
run at the same time.

 

A multiple package transaction feature was added in Windows Installer 4.5
and this allows you to chain multiple packages together but I've not used
it.  Sadly, this <http://support.microsoft.com/kb/942288>  is the only link
I can find right now that mentions it, although a little digging here
<http://msdn.microsoft.com/en-us/library/windows/desktop/cc185688(v=VS.85).a
spx>  might turn something up.  Depending on which Windows versions you're
targeting, you'll need to ensure Windows Installer 4.5 is installed first
anyway.

 

Ultimately I think you'll need a bootstrapper to handle these prerequisites
before launching your own MSI.  I'm currently using dotNetInstaller
<http://dotnetinstaller.codeplex.com/>  to create a bootstrapper for my
product.  It's not perfect but it does the job.  When I find time I'll look
at changing this to use the burn tool in WiX
<http://robmensching.com/blog/posts/2011/10/24/WiX-v3.6-Beta-released>  3.6.

 

>From memory, you can get VS to generate a bootstrapper for you by adding a
GenerateBootstrapper <http://msdn.microsoft.com/library/ms164294.aspx>  task
to your proj file.  I'm not sure how this works with the setup projects and
you'll need to have the appropriate packages available (on my machine they
live at C:\Program Files (x86)\Microsoft
SDKs\Windows\v7.0A\Bootstrapper\Packages).

 

Some other options for building a bootstrapper (in no particular order)...

1.      Burn in WiX
<http://robmensching.com/blog/posts/2011/10/24/WiX-v3.6-Beta-released>  3.6
2.      Roll your own native bootstrapper (i.e. using C/C++)
3.      Nullsoft <http://nsis.sourceforge.net/Main_Page>  Scriptable Install
System - may be a little simpler than rolling your own native bootstrapper
in C/C++
4.      SharpSetup <http://sharpsetup.eu/>  - mainly for building .NET based
installer GUIs but I *think* it may help with bootstrappers too
5.      MSI Factory <http://www.indigorose.com/products/msi-factory/>  - I
trialled this as an alternative to hand-crafting WiX files and was quite
impressed but couldn't get approval to purchase it, it has a scriptable
bootstrapper but I've not tried it

Hope this helps.

 

On Thu, Nov 10, 2011 at 9:53 PM, Tony Wright <[email protected]> wrote:

I started with a fresh setup program. I added the silent install of dot net
framework, and it failed. So I took out the /q and tried again. It started
the install then said that there was another setup program already waiting
and it needed to wait for that to finish. That was the setup program I
called it from. This is getting tricky.

 

From: [email protected] [mailto:[email protected]]
On Behalf Of Ian Thomas
Sent: Thursday, 10 November 2011 9:57 PM


To: 'ozDotNet'
Subject: RE: Visual Studio Installer Silent Installation

 

A starting point:
http://blogs.msdn.com/b/astebner/archive/2010/05/12/10011664.aspx 

(Aaron Stebner generally has good advice) 

 

  _____  

Ian Thomas
Victoria Park, Western Australia

  _____  

From: [email protected] [mailto:[email protected]]
On Behalf Of Tony Wright
Sent: Thursday, November 10, 2011 2:20 PM
To: 'ozDotNet'
Subject: RE: Visual Studio Installer Silent Installation

 

Alright, that didn't get any response, so let's simplify it a bit.

 

How do I get .net 4 to silently install using Visual Studio 2010 Installer?

 

 

From: [email protected] [mailto:[email protected]]
On Behalf Of Tony Wright
Sent: Thursday, 10 November 2011 3:00 PM
To: 'ozDotNet'
Subject: Visual Studio Installer Silent Installation

 

Hi all,

 

I am trying to find the details on how I set Visual Studio 2010 Installer
package so that it 

(1)    Silently installs .net framework 4.0 client profile if it is not
present and

(2)    Silently installs SQL Server Compact Framework 3.5SP2 if it is not
present

 

To achieve this, I believe that I have to turn off the prerequisite
installation by unchecking the "Create setup program to install prerequisite
components" checkbox in SetupProject=>Properties=>Prerequisites then
manually add Launch Conditions to perform the prerequisite checks and
install any missing prereqs manually.

 

I have added the standalone installers into my application
(dotNetFx40_Client_x86_x64.exe & SSCERuntime-ENU.msi
SSCERuntime-ENU-x64.msi)

 

Starting with the .net 4 client profile, I have added a Registry Launch
Condition to search for existing .net 4 client profile.

It's details are:

(Name) Search for DotNet4 Client Profile

Property DOTNET4INSTALLED

RegKey SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client\Install

Root vsdrrHKLM

Value 1

 

Next I added a Launch Condition called "Test for Dot Net 4 Client Profile"

(Name) Test for Dot Net 4 Client Profile

Condition DOTNET4INSTALLED

InstallUrl ??? don't know what goes here

Message <Error Message>

 

I am unsure what I need to do next to get the .net 4 client profile
installer to run if the registry is not found.

 

Any ideas what I should do next?

 

Regards,

Tony

 

Reply via email to