What you are trying to do is the wrong way about it - you are modifying launch 
conditions of your MSI database, all this will do is block the install and tell 
the user to visit a website to download it. MSI's don't typically install other 
MSIs. Rather something called a 'bootstrapper' installs a collection of MSIs or 
installs (your application and .NET being one of them).

The setup bootstrapper (Right-click on Setup, click Properties -> 
Prerequisities) is the thing you want. Simply check .NET 4.0 and Compact 
Framework and it will preinstall them before running your MSI.

If you want more control, then I would recommend Burn from Wix - this is what 
the next version of Visual Studio users, and is extremely powerful and feature 
rich (but can be hard to start).

From: [email protected] [mailto:[email protected]] On 
Behalf Of Ian Thomas
Sent: Thursday, November 10, 2011 6:59 PM
To: 'ozDotNet'
Subject: RE: Visual Studio Installer Silent Installation

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 transaction 
processing<http://msdn.microsoft.com/en-us/library/aa372093.aspx#_msi_transaction_processing_gly>.
 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]> 
[mailto:[email protected]]<mailto:[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).aspx>
 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 
3.6<http://robmensching.com/blog/posts/2011/10/24/WiX-v3.6-Beta-released>.

>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 
3.6<http://robmensching.com/blog/posts/2011/10/24/WiX-v3.6-Beta-released>
  2.  Roll your own native bootstrapper (i.e. using C/C++)
  3.  Nullsoft Scriptable Install System<http://nsis.sourceforge.net/Main_Page> 
- 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]<mailto:[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]> 
[mailto:[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]> 
[mailto:[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]> 
[mailto:[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