Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio
All postings are provided AS IS with no warranties, and confer no rights. Additionally, views expressed herein are my own and not those of my employer, Microsoft.
A while back, I posted a set of instructions for automating the install of Visual Studio 2005 Express Editions. Since the Visual Studio 2008 product family shipped last November, I have been asked for an equivalent set of instructions for Visual Studio 2008 Express Editions as well.
Before using the instructions in this post, you must use one of the following links to create a network install point for one or all of the Visual Studio 2008 Express Editions:
Once you have downloaded the pieces of the Express Edition setup package, you will need to figure out which pieces are needed for the OS type (Windows XP, Windows Server 2003, etc), OS language (English, etc), processor architecture (x86, x64) and Express Edition type (VB, VWD, etc) that you are planning to install. Each Express Edition consists of a set of prerequisites, the main Express Edition package and a set of optional components.
The following components are prerequisites, meaning they must be installed before attempting to install the main Express Edition package:
The following components are optional components, meaning they are not required to be installed, and must be installed after the main Express Edition package if you choose to install them:
The following is a list of all VS 2008 Express Edition prerequisites, main packages and optional components, what conditions they are needed for and their silent install command line switches. Note that some packages are self-extracting packages that require 2 steps - one to extract the contents and a second to perform the silent install.
Windows Installer 3.1
Needed on Windows XP x86 if not already installed.
WindowsInstaller-KB893803-v2-x86.exe /quiet /norestart
Visual C++ Minimal Redistributable
Needed on all operating systems if not already installed.
.NET Framework 3.5
dotnetfx35setup.exe /q /norestart /lang:ENU
.NET Framework 3.5 language pack (x86)
Needed for all non-English Express Editions on all x86 operating systems if not already installed.
dotnetfx35langpack_x86**.exe /q /norestart
Note: In this command line, ** is the 2 letter culture code for the language you are installing. For example, the file name will be dotnetfx35langpack_x86fr.exe for the French language pack.
.NET Framework 3.5 language pack (x64)
Needed for all non-English Express Editions on all x64 operating systems if not already installed.
dotnetfx35langpack_x64**.exe /q /norestart
Note: In this command line, ** is the 2 letter culture code for the language you are installing. For example, the file name will be dotnetfx35langpack_x64fr.exe for the French language pack.
Remote Debugger (x64)
Needed on all x64 operating systems if not already installed.
Windows SDK Express Headers and Libraries (x86)
Only needed for the Visual C++ 2008 Express Edition. Needed on all x86 operating systems if not already installed.
Windows SDK Express Headers and Libraries (x64)
Only needed for the Visual C++ 2008 Express Edition. Needed on all x64 operating systems if not already installed.
Windows SDK Express Tools for the .NET Framework (x86)
Only needed for Visual Basic, Visual C++ 2008 and Visual C# 2008 Express Editions. Needed on all x86 operating systems if not already installed.
Windows SDK Express Tools for the .NET Framework (x64)
Only needed for Visual Basic, Visual C++ 2008 and Visual C# 2008 Express Editions. Needed on all x64 operating systems if not already installed.
Windows SDK Express Tools for Win32 (x86)
Only needed for Visual Basic 2008, Visual C++ 2008 and Visual C# 2008 Express Editions. Needed on all x86 operating systems if not already installed.
Windows SDK Express Tools for Win32 (x64)
Only needed for Visual Basic 2008, Visual C++ 2008 and Visual C# 2008 Express Editions. Needed on all x64 operating systems if not already installed.
Windows SDK Express Tools for Web (x86)
Only needed for the Visual Web Developer 2008 Express Edition. Needed on all x86 operating systems if not already installed.
Windows SDK Express Tools for Web (x64)
Only needed for the Visual Web Developer 2008 Express Edition. Needed on all x64 operating systems if not already installed.
Visual Studio Web Authoring Component
Only needed for the Visual Web Developer 2008 Express Edition. Needed on all operating systems if not already installed.
WebDesignerCore.EXE /q /install /1033
Main Visual Basic 2008 Express Edition package
Needed on all operating systems in order to install the Visual Basic 2008 Express Edition.
Main Visual C++ 2008 Express Edition package
Needed on all operating systems in order to install the Visual C++ 2008 Express Edition.
Main Visual C# 2008 Express Edition package
Needed on all operating systems in order to install the Visual C# 2008 Express Edition.
Main Visual Web Developer 2008 Express Edition package
Needed on all operating systems in order to install the Visual Web Developer 2008 Express Edition.
SQL Server Compact 3.5
Only needed for Visual Basic 2008 and Visual C# 2008 Express Editions. Optional on all operating systems if not already installed.
msiexec /i SSCERuntime-enu.msi /qn /l*v %temp%\SSCERuntime-enu.log USING_EXUIH=1 REBOOT=ReallySuppress
SQL Server Compact 3.5 Design Tools
msiexec /i SSCEVSTools-ENU.msi /qn /l*v %temp%\SSCEVSTools-ENU.log USING_EXUIH=1 REBOOT=ReallySuppress
MSDN Express
Optional on all operating systems if not already installed.
SQL Express (x86)
Optional on all x86 operating systems if not already installed.
sqlexpr32.exe -q /norebootchk /qn reboot=ReallySuppress AddUserAsAdmin=1 addlocal=all instancename=SQLEXPRESS SCCCHECKLEVEL=IncompatibleComponents:1;MDAC25Version:0 ERRORREPORTING=2 SQLAUTOSTART=1
SQL Express (x64)
Optional on all x64 operating systems if not already installed.
sqlexpr.exe -q /norebootchk /qn reboot=ReallySuppress AddUserAsAdmin=1 addlocal=all instancename=SQLEXPRESS SCCCHECKLEVEL=IncompatibleComponents:1;MDAC25Version:0 ERRORREPORTING=2 SQLAUTOSTART=1
SQL Publishing Wizard
Only needed for the Visual Web Developer 2008 Express Edition. Optional on all operating systems if not already installed.
msiexec /i SqlPubWiz.msi /qn /l*v %temp%\sqlpubwiz.log USING_EXUIH=1 REBOOT=ReallySuppress ISINVOKEDFROMVS=1
Silverlight 1.0
Silverlight1.0.exe /q
Additional notes about silent install of the Express Editions:
PingBack from http://msdnrss.thecoderblogs.com/2008/03/25/how-to-silently-install-the-components-included-with-the-visual-studio-2008-express-editions-2/
Recently, I posted some instructions for creating an installable layout for Visual Studio 2008 Express
can't understand a thing, is there more simple explanation, haha LOL
Hi Pissed - I'm not sure how best to help you. Have you tried the steps in this blog post and ran into trouble? If so, what exact step are you stuck on and what exact error message(s) are you seeing?
Very nice article, thank you.
I have the silent install working fine if the .NET Framework 3.5 role is installed, otherwise the setup fails. I am trying to make it so that the user doesn't get prompted for any of the install settings. If I run the setup file manually, it detects 3.5 is not installed and asks if I want to enable it. If I run it silently, it just fails at that point.
Do you have any idea how to keep it silent except for failures of prerequisites?
Hi Tamerz - I'm sorry, but there is not a way to make .NET Framework selectively silent. It can either be fully silent, fully unattended (meaning it shows UI but doesn't require user interaction), or fully interactive (meaning it shows UI and requires user interaction).
Hi, this basically works also with Win SDK 7.1.
The question is whether one is allowed to do this. More exactly, after downloading the ISO image, one can extract its content and burn it on a CD. After that, it is possible to install individual components as needed. However, if I use "msiexec", the EULA is not shown and "I accept" is not clicked. Is this OK?
In this page support.microsoft.com/.../2498225 the silent install is described, and it says "Using the silent installation does not negate this agreement (the EULA)." With the command detailed there, one can install only the full packet; I was not able to selectively install components. Is there a way to give parameters to "setup" so that only some components are installed?
Hi Petru - The Windows Phone SDK 7.1 does not offer selective install of any of its sub-components if you install with the full UI, so there is not a way to perform a selective install in silent mode either.