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
