Click here to Skip to main content
13,556,101 members
Click here to Skip to main content
Add your own
alternative version


134 bookmarked
Posted 9 Jun 2003

Enhanced .NET Bootstrap Setup

, 24 Nov 2005
Rate this:
Please Sign up or sign in to vote.
Modified Microsoft Setup program to install required IE6, MSI 2.0 and .NET.

Sample Image - DotNetSetup.gif


In looking to install my .NET program on a Windows 98 or ME platform and even the newer XP and 2000 versions, I ran into several difficulties. There are several requirements to running a .NET program. The first is that the .NET framework needs to be installed prior to installing your program. The second problem is that one of the requirements for a .NET program is that IE 5.01 be installed. Windows 98 comes with IE 4.01 and Windows 98 SE comes with 5.0. And all installer files created by VS use the newer Microsoft Installer (version 2.0). I found the Microsoft setup program to be useful but not enough. So I set out to update the program. Little did I know that I had to dredge up my old Win API skills.

What you need to know

Note: This program was compiled with VS 2003 so the solution file may not work with older versions. I believe that the project will open in older versions as I was asked to convert the solution and not the project.

In order to use this program, you just have to update the settings.ini file.


The settings are:

  • MSI: Use this to point to your installer file.
  • ProductName: Use this to name your product.
  • FxInstallerPath: This is the path to the .NET installer. It looks for a file named Dotnetfx.exe.
  • IEInstallerPath: This is the path for IE 6.01. It looks for ie6setup.exe.
  • MSIInstallerPath: This is the path for MSI 2.0 (Microsoft's new installer). It looks for two files that you can download from Microsoft's site, InstMsiW.exe and InstMsiA.exe. These are for different versions of Windows.
  • MDACInstallerPath: This is the path for MDAC 2.7 (Microsoft Data Access). It looks for MDAC_TYP.EXE.
  • MDACVersion: 2.7 is the default.
  • .NetVersion: This can be v1.0 or v1.1.
  • MSDEInstallerPath: This is the path to the MSDE installer (Microsoft SQL Server Desktop Engine). It looks for a file named setup.exe.
  • MSDEParams: /settings <settings.ini file> SAPWD="strongpassword" - Note that a strong password is required.

All of the files above were downloaded from Microsoft's site so I won't include them. Note that I had to extract the MSDE files to a folder. Those files contained the setup files which are needed for the installer. The parameters are very important as the setup.exe program will not run without them. It is designed to be a silent application. The password is required but the settings file is not.

Place all of your files in a folder under this version of setup.exe and the settings.ini file. If any of the components above need installing, the dialog shown above will show up, otherwise your installer will run.

The source code is included if you need to make modifications.

Changes from Microsoft's version of bootstrapper:

  1. New dialog that shows what will be installed.
  2. New entries in the settings.ini file for IE 6, MSI, MDAC, & MSDE.
  3. New code for reading those entries.
  4. Code for displaying the dialog box and launching the new programs.

New Features

  1. Added MSDE support. This was added after a user request. It has not been fully tested.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Kevin Moore
Web Developer
United States United States
No Biography provided

You may also be interested in...

Comments and Discussions

QuestionLatest Exe please? Pin
malcomm29-Jan-06 12:52
membermalcomm29-Jan-06 12:52 
GeneralResources Pin
adras4-Jan-06 23:31
memberadras4-Jan-06 23:31 
GeneralRe: Resources Pin
Kevin Moore5-Jan-06 12:13
memberKevin Moore5-Jan-06 12:13 
GeneralRe: Resources Pin
psmukil15-Mar-06 18:32
memberpsmukil15-Mar-06 18:32 
GeneralRe: Resources Pin
Kevin Moore15-Sep-06 5:19
memberKevin Moore15-Sep-06 5:19 
GeneralUse Realitive paths Pin
Joe Fuentes30-Nov-05 7:44
memberJoe Fuentes30-Nov-05 7:44 
GeneralRe: Use Realitive paths Pin
Kevin Moore1-Dec-05 8:14
memberKevin Moore1-Dec-05 8:14 
GeneralRe: Use Realitive paths Pin
Joe Fuentes1-Dec-05 8:59
memberJoe Fuentes1-Dec-05 8:59 
Well for many (other then the dotnetfx.exe) (like the msi,ie,msde) if you don't have a setting, it will not set a location and then it will not run that install.

Though it's kinda funny (maybe it's just me or something I don't understand) that one would have an absolute path ("c:\somewhere\somesetupfolder\" instead of "somesetupfolder" and it just append that to the end of the current setup.exe's path "c:\here\somewhere\SomeSetupFolder\"

So that's the issue. I fixed it by adding this else statement:

TCHAR * pch = m_szFxInstallerPath;
TCHAR tempvar[ MAX_PATH + LENGTH(m_szFxInstallerPath) ];
GetModuleFileName( g_settings.GetHInstance(), tempvar, LENGTH(tempvar) );
TCHAR * pszWalk = _tcsrchr( tempvar, BACKSLASH );

if (pszWalk)
pszWalk++; // preserve trailing '\'
*pszWalk = END_OF_STRING;

_tcscpy(m_szFxInstallerPath, _tcscat(tempvar,m_szFxInstallerPath));

// one-past end of str
while (*pch++);

// back up to final char before terminator
pch -= 2;

if (*pch++ != BACKSLASH)
*pch++ = BACKSLASH;

This seems to work fine now, I did this for all of them, but it made the bootstrap only work for realitive paths, no more absolute paths.

Joe Fuentes
Classic FS
GeneralRe: Use Realitive paths Pin
Kevin Moore3-Dec-05 12:05
memberKevin Moore3-Dec-05 12:05 
GeneralMSI Install check question Pin
Pat H22-Nov-05 5:53
memberPat H22-Nov-05 5:53 
GeneralRe: MSI Install check question Pin
Kevin Moore22-Nov-05 11:21
memberKevin Moore22-Nov-05 11:21 
GeneralRe: MSI Install check question Pin
Kevin Moore25-Nov-05 9:48
memberKevin Moore25-Nov-05 9:48 
GeneralAuto launch after installation of application Pin
psmukil15-Mar-06 18:35
memberpsmukil15-Mar-06 18:35 
GeneralRe: Auto launch after installation of application Pin
Kevin Moore16-Mar-06 4:59
memberKevin Moore16-Mar-06 4:59 
GeneralRe: MSI Install check question Pin
tnybubble22-Aug-06 12:38
membertnybubble22-Aug-06 12:38 
GeneralRe: MSI Install check question Pin
Kevin Moore15-Sep-06 5:15
memberKevin Moore15-Sep-06 5:15 
GeneralDifferent Versions of Source and Exe Pin
Pat H18-Nov-05 11:16
memberPat H18-Nov-05 11:16 
GeneralRe: Different Versions of Source and Exe Pin
Kevin Moore18-Nov-05 12:20
memberKevin Moore18-Nov-05 12:20 
GeneralRe: Different Versions of Source and Exe Pin
Pat H18-Nov-05 15:47
memberPat H18-Nov-05 15:47 
QuestionCan you send me the latest source? Pin
Krasnog3-Nov-05 3:15
memberKrasnog3-Nov-05 3:15 
AnswerRe: Can you send me the latest source? Pin
Kevin Moore3-Nov-05 4:15
memberKevin Moore3-Nov-05 4:15 
GeneralShould be &amp;quot;Windows Installer&amp;quot; Pin
temptomb31-Oct-05 14:23
membertemptomb31-Oct-05 14:23 
GeneralLatest source &amp; bug Pin
Adam Klobukowski3-Oct-05 23:53
memberAdam Klobukowski3-Oct-05 23:53 
GeneralCool stuff Pin
eyeyunk1-Oct-05 5:58
membereyeyunk1-Oct-05 5:58 
QuestionLatest source? Pin
Ron10023-Sep-05 10:07
memberRon10023-Sep-05 10:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.180515.1 | Last Updated 24 Nov 2005
Article Copyright 2003 by Kevin Moore
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid