I've discovered that there is a difference between the generated msi and the
setup exe. The generated msi will pop up a box asking you whether you want
to download the .net framework from the web, which is not desirable, and the
setup exe will simply ask you to agree to the licensing agreement and then
install the .net framework. The setup.exe also allows the installer to be
located in the installation folder, not requiring it to be downloaded.

 

So the answer for us is to set the prerequisites in the installer and then
use the generated setup.exe and not the msi. It doesn't hide all the
messages, but it is good enough for now.

 

Thanks for the help.

 

 

From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com]
On Behalf Of Matt Siebert
Sent: Friday, 11 November 2011 12:05 PM
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 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 <ton...@tpg.com.au> 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: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com]
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: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com]
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: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com]
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