iBet uBet web content aggregator. Adding the entire web to your favor.
iBet uBet web content aggregator. Adding the entire web to your favor.



Link to original content: https://web.archive.org/web/20211124122733/http://www.installsite.org/pages/en/msi/tips.htm
InstallSite: Windows Installer Tools and Tips
The Wayback Machine - https://web.archive.org/web/20211124122733/http://www.installsite.org/pages/en/msi/tips.htm

Shop

InstallShield
Advanced Installer
AdminStudio
more / weitere

InstallShield und AdminStudio Schulungen

weitere Infos

Windows Installer Tools & Tips

See also: Windows Installer Technical Articles

Laurie Rhodes' MSI Utilities

Laurie posted a number of script and tools for Windows Installer and deployment tasks, including:

and more.

WWW Laurie Rhodes' website

Common Windows Installer Conditions

Flexera Software published a very useful "cheat sheet" with conditions that are commonly used in MSI setups. The PDF is available for download from their InstallTalk blog:

WWW Blog post with download

MSI Logfile Analyzer

This is a commercial tool. Note: While the web site is in German, the tool itself is in English

This is a graphical tool to analyze and display the contents of a verbose Windows Installer log file. The user interface looks a bit like InstEd or similar MSI editors. But instead of the contents of the MSI database, it displays a structured view of feature states, properties and the like.

WWW Web site with trial download

MSI Live Logging and File Extraction Utility

This tool is effectively a front-end for launching an .msi or .exe package with a real-time logfile viewer and ability to easily set some command line options. It is also however a tool for extracting some or all of the files embedded within the msi's CAB files and has a nice tree view layout showing the files according to their folder layouts. It also attempts to highlight msi table entries or files that appear to be in error or unreferenced.

 When you first run the program you'll need to type in the name of an MSI or drag one to the edit box. When you quit, various choices and preferences are remembered in an INI file in your My Documents folder. Other than that the program is passive in that it doesn't write to the MSI or to the Registry. Of course if you extracted any files they'll remain in your folder of choice!

ZIP MsiTools.zip  Written by Andy Guest
Originally posted: 2009-11-17   File size: 157.741 bytes

Robert Dickau's Windows Installer Tips

Robert Dickau is known as the principal technical training writer for Flexera Software (and its predecessors). He has created many training courses, has written countless newsletter articles, etc. and even co-authored a book about Windows Installer. On his personal web site he has posted a collection of Windows Installer tips and notes that's worth reading. (And if you enjoy his sense of humor you should follow him on twitter: @robertdickau)

WWW Robert Dickau's Windows Installer (MSI) Tips and Notes

Msiexec Command Line Builders

MSI Helper

This utility allows you to build command line parameters for Windows Installer (.MSI) packages without having to learn the complicated syntax for the parameters.

This tool is a replacement for the "Msiexec Command Line Builder" from Wise/Altiris/Symantec which is no longer available.

WWW Web site

MSIExecCmdLineEdit

Programm zum Erstellen der Kommandozeilen für den Aufruf von MSI-Dateien. Alle Einstellungen können einfach zusammen-geklickt und sogar gespeichert und geladen werden. Direkter Aufruf des MSIs aus dem Programm heraus, Aufruf einer Administrator-Konsole, etc.

Also available in English:
Change Language=1031 to Language=1033 in the [Main] section of the included INI file.
This program creates command lines to launch MSI files. All settings can be configured by point-and-click and can be saved. MSIs can be launched directly from the program, and you can also launch an administrator console.

ZIP Download   Screenshot

Authoring an ICE using C# / DTF

Christopher Painter has published an article that shows how to use the Deployment Tools Foundation (DTF) to write a custom Internal Consistency Evaluator (ICE) to validate your MSI file using C#. Below you can download the sample code and read Christopher's article.

WWW MSI Tip: Authoring an ICE using C# / DTF in Christopher Painter's blog

ZIP DTF_ICE.zip   Written by Christopher Painter
File size: 13.341 bytes   Last update: 2009-02-16 (second release: 13:30 GMT)

Installing Services with Visual Studio

This article describes how to install Services when you use a Visual Studio Setup & Deployment project and a tool that you can use to modify Windows Installer setup files, MSI files, to install Services using the built-in features of Windows Installer.

ZIP SvcInstall.zip   Written by Phil Wilson
File size: 367.281 bytes   Last update: 2007-02-28

Setup Squeezer

Setup Squeezer is a commercial tool from InstallAware Software Corporation

Description from the company:
Setup Squeezer is an application to recompress Windows Installer (MSI) and InstallShield (EXE) setups. With LZMA compression technology, and BCJ2 compression pre-processing, Setup Squeezer is able to make already-compressed setups smaller by an additional 15% to 50%. Setup Squeezer improves on existing setup-compression tools by offering a very simple wizard interface that helps you intelligently unpack and repackage existing setups, with runtime support for all versions of Windows from Windows 95 to Windows Vista, using an extraction process that the user can abort, while running with as little as 32MB of physical memory. Previously compressed packages and nested setups are recursively scanned, opened, and automatically recompressed. Setup Squeezer is available in two versions: Setup Squeezer for Windows Installer and Setup Squeezer for InstallShield.

WWW Website: www.installaware.com

Skinning Dialogs in MSI Files

SkinCrafter Installer is a free tool that can put a skin on the dialogs in your Windows Installer setup. Simply feed it any .msi file and it will create a skinned version fo it that is packaged as a single exe file. For this screenshot I created a default Basic MSI setup using InstallShield 11 and applied the Christmas skin. As you can see non-rectangular shapes are also supported. Several skins are available for download, or you can create your own. However I found that some dialogs don't look perfectly good when skinned, I had problems with the SetupType dialog.

WWW Web Site

Dissecting a Windows Installer Setup

This article in Aaron Stebner's WebBlog describes step by step how to unpack, monitor and analyze the installer for the .NET Framework 1.1 runtime which is internally based on MSI.

WWW Visit Web Site

ScreenshotProgramming Billboards and Progress Bars

This techincal paper written by Alamgir Farouk explains how billboards (on the progress dialog, see screenshot) work in Windows Installer. It also describes how a custom action can display text and drive the progress bar. A sample setup and source code (C++ for the custom action, InstallShield Developer 7 project for the setup) is included.

This sample is now part of the "msiprogramming" project on SourceForge.net

WWW Visit Web Site

Case Studies and Sample Installations

See also: Deployable Packages (wrappers and repackaged legacy applications)

Deploying Microsoft Visual Studio .NET 2003 by Using Active Directory

This white paper describes the procedures for using the Group Policy feature of Active Directory to deploy the Visual Studio .NET 2003 setup package across a network.

WWW Visit Web Site

Create Folders Upon User Selection

This IPWI project is a sample install that will create three empty folders on the local system based on the selection by the end user through the UI. The project file was created with InstallShield Professional - Windows Installer Edition 2.03.

ZIP EmptyFolder.zip   Written by Thane Gebbie
File size: 118.792 bytes   Last update: 2001-06-29

C# Wrappers for the Windows Installer API

These are C# files that wrap the Windows Installer APIs exported by MSI.DLL. Different solutions are available. For download and documentation please visit the web sites.

MSI.Interop by Rich Thomson

Rich Thomson, a Microsoft MVP for Windows Installer, wrote a C# wrapper for the entire MSI API that organizes things in terms of IDisposable and classes similar to the automation interface objects for scripting. The assembly is LGPL source and can be downloaded from SourceForge.

What makes this wrapper different from the other wrappers:

Setting the UI handler from C# is not working right in version 1.1, but Rich is working to add this functionality in the near term.

WWW SourceForge.net

Ian Mariano at The Code Project

WWW The Code Project web site

Joe Mele at Youseful Software

WWW Youseful C# wrapper

Windows Installer Search Engine

Joe Mele of Youseful Software has created a Google search form that only lists Windows Installer related results.

WWW Youseful Windows Installer search engine

Application Support for Install On Demand

This file contains Visual Basic source code to support on-demand install in an application. The InstallFeature subroutine checks to see whether a specified feature is installed, and installs it if necessary. You can also supply it with a list of components, and then it will check to see whether each component is installed.

ZIP InstallFeature.zip   Written by Bob Snyder
File size: 3.935 bytes   Last update: 2000-03-27

Capture Self-Registration Information

RegSpy

This program (formerly known as RegIt) captures COM registration entries for DLLs, OCXs and EXE COM servers. In general, it works by using the RegOverridePredefKey on Windows 2000 to redirect registry entries to another registry area.

  1. It takes the path to the Dll as a command line argument.
  2. Loads the Dll and looks for DllRegisterServer to call.
  3. Redirects HKEY_CLASSES_ROOT and HKEY_LOCAL_MACHINE registry entries to
    HKEY_CURRENT_USER\Software\Unisys\Registry\<dllname>\HKCR and
    HKEY_CURRENT_USER\Software\Unisys\Registry\<dllname>\HKLM.

In contrast to other registry monitor solutions it doesn't need any drivers. Source code is included in the package.
RegSpy can output a .reg file for import in MSI authoring tools. Source code requires Visual Studio .NET 2003.

ZIP RegSpy2.zip   Written by Phil Wilson and Justin Buist
File size: 75.964 bytes   Last update: 2003-10-28

Original version (source code works with Visual Studio 6.0):
ZIP RegSpy.zip   Written by Phil Wilson
File size: 19.488 bytes   Last update: 2001-10-26

Self-Registration Monitor

This a command line tool that allows monitoring of self-registration activity; its output is a .REG file of the activity that took place. There is a switch (/i) that you can use to ignore any HKEY_CLASSES_ROOT activity, which is useful if your COM server registers other settings besides the COM information. The program works for both for inproc servers (.dll, .ocx) and for local servers (.exe).

The program only runs on NT/2000. It needs the Regsys.sys driver that you can download from the SysInternals web site. (The authors of the driver do not allow to include it in the package.) It supports version 4.32 of RegMon. Package includes source code.

ZIP srm13.zip   Written by Friedrich Brunzema
File size: 44.349 bytes   Last update: 2001-02-28

Installing the .NET Compact Framework Using MSI

Microsoft has published a sample called ".NET Compact Framework Sample: MSI that Detects Framework Version". This sample describes how one might create an MSI package which can detect the presence of the Microsoft .NET Compact Framework on a device, determine if the device needs to be upgraded with a newer version, and install or upgrade the Framework along with an application.
There are some mechanisms available now which can reduce the work involved. For instance, developers may include the .NET Compact Framework web redistributable inside their own MSI and simply invoke it. Since this may not be sufficient for many, then a larger effort may be required.

WWW Download the Sample from Microsoft

Using the LockPermissions Table on Localized Windows Versions

Setting user rights on files, folders and registry keys using the LockPermissions table requires the localized name of a user. Starting with MSI 2.0 you can use "Everyone" and "Administrator" without localization, but other user accounts like "Power User" or "Authenticated User" still need to be localized. Here is a merge module with a custom action that retrieves a multitude of "well-known SIDs" and stores their localized user names in properties (e.g. SID_BUILTIN_POWER_USERS) for use in the LockPermissins table.

ZIP SIDLookup.zip    Written by Andreas Magnusson
File size: 72.052 bytes   Last update: 2003-09-07

Handling MSI Source Pointers

Windows Installer's "resilience" features and "run from source" require pointers to the location of the original MSI installation file. These pointers are in the local MSI database which is actually part of the registry. Sometimes you want to modify these pointers or add alternate source locations. This article and it's accompanied scripts show how to list the source pointers of all registered packages, and how to modify them.

ZIP msisources.exe   Written by Darwin Sanoy of Desktop Engineer's Junk Drawer
File size: 58.409 bytes   Last update: 2001-02-12

List Contents of InstallShield Project

Output as Excel Sheet

This VBScript is similar to Robert Dickau's HTML tool (below), but was rewritten it so it adds the component list in an Excel sheet instead of an HTML file or a delimited text file. Microsoft Excel must be installed on the system for the script to work.

The code can be incorporated in an automatic build process and hence allow a "component history" to be saved for your setup.

ZIP ManifestExcel.zip   Written by Stein Åsmul
File size: 569.659 bytes   Last update: 2003-11-18

Output as HTML Page

This HTML page and its embedded VB script code creates a manifest of all features and files that are in the specified project, with the source and destination of the files. Before you use it, open the HTML in a text editor and change the g_Project constant to the path of your .ism file.

This script uses the automation interface in IPWI. In your Internet Explorer security settings, "unsafe ActiveX controls" must be enabled.

The file is optimized for IPWI 2.0 or above. Code sections for ISWI 1.5x are included in comments.

ZIP Manifest.zip   Written by Robert M. Dickau
File size: 1.215 bytes   Last update: 2000-11-15

Output as Delimited Text File

This VB program is an adaptation of Robert Dickau's manifest creation utility. It writes out the information to a semicolon delimited text file, with source path enclosed in quotes. It also includes the listing of which sub-feature a specific component is included in. The listings are grouped by top-level feature. The output file which results is the project file's name with _manifest.txt appended to the end. Includes a basic UI for browsing to the ism file. The tool was created with VB 6.0.

ZIP ManifestApp.zip   Written by Brian Fealy
File size: 8.215 bytes   Last update: 2002-07-31

MSI Database Viewers, Editors, Validators, Extractor

See also: Windows Installer Authoring Tools

7-Zip

7-Zip is an open source compression tool. In addition to IP and other compression formats, it can also extract embedded files from an .msi. So if you have a single-MSI-package you can sue 7-Zip to extract the application files from the embedded CAB. Note however that 7-Zip cannot insert files in such a package, it can only extract.
Thanks to Denis St-Pierre for this tip

WWW Web Site

"Less MSIérables" MSI File Extraction & Viewer Utility

Scott Willeke's "Less MSIérables" utility (aka "Lessmsi") lists the files that are included in an .msi package and can extract them maintaining their target directory structure just as if they were installed from the msi setup.

WWW Program and source code on Google Code

WWW Scott Willeke's Blog (posts tagged with " lessmsi")

MSIDIFF

MSIDIFF can dump complete or compare two Windows Installer databases as well as patches and transforms, it installs shell extensions (right click on file) to simplify this but it can also be used from the command line.
The output can also be fed back into the MAKEMSI tool which was also written by Dennis Bareis, allowing you to automate and changes you may have made using a table editing tool such as Orca.

WWW Web Site

Generate Report from Administrative Install

This script was made for people who test the installs and want to know what was exactly in the install without having to install the setup.exe and then trace through the folders and find the files of interest and document the version of the file and mod date. So, this script will do a prompt to ask where the install is, do an administrative install, gather all the information off all the files in that directory where you did the admin install and put it into a nice xls worksheet for you.

ZIP InstallFileVersion.zip   Written by Chris Cannata
File size: 1.844 bytes   Last update: 2009-05-14

Generate Report from MSI File

This VBscript file allows a user to type in an MSI path, a report directory, and a report name. The VBscript file then generates a tab-delimited BAK file which exports summary data and a list of files, with their related component GUIDs, version and conditions) from the MSI. This list can, for instance, be imported into Excel.

ZIP MsiReportGenerator.zip   Written by David.Ashelman
File size: 1.948 bytes   Last update: 2003-10-20

MSI Package Cleaner

This is a commercial tool

PackageCleaner provides a solution to determine which elements belong in your package and which do not, what may cause problems and what may safely be left in. Including files in your package that do not belong, results in a "dirty package" which may become the source for a number of deployment and operational problems. In addition, PackageCleaner also scans for hundreds of known Spyware files.

WWW Visit site

Rate Compexity of MSI Packages

This tool analyzes a MSI file, counting and weighting table entries. The result is a numerical value that you can use to compare the complexity of msi packages. For instance, the complexity value for Orca.msi is 256, the value for the InstallShield Developer setup is 17596, and the value for Office 2000 Professional is 32062.

ZIP PkgRatio.zip   Written by Stefan Hotan
File size: 1.828.642 bytes   Last update: 2004-09-13

Remove Dialog Branding

This VB Script can be used to post process a MSI file to delete the word InstallShield from the lower left area of the built in dialogs in InstallShield Windows Installer Edition, InstallShield Express 3 and InstallShield Developer 7 (Basic MSI projects only). It was tested with IPWI 2.03, ISX 3.03 and ISD 7.00. For Standard projects ISD7 stores the dialogs in a DLL, so this tool doesn't work for that type of project.
To remove the branding run the VB script and pass the full path to the MSI file on the command line, or simply drag the MSI file and drop it on the VBS file. It will delete the embossed word InstallShield and extend the line above the buttons to the left edge. You have to re-run this tool after you rebuilt the MSI file.

Note: InstallShield recommends that you do not remove the branding, as documented in knowledge base article Q105444.

ZIP RemoveBranding.zip   Written by Pascal Bourque, modified by Stefan Krueger
File size: 616 bytes   Last update: 2001-09-26

MSI to XML and XML to MSI Converters

The MSI to XML converter reads the contents of a .msi file and generates a XML based text document from it. This comes in handy for documentation, to compare several versions of a setup package, for version control systems etc. Binary streams are either embedded an MIME coded text, or linked as external files. The tool also includes a style sheet to display the XML file as web page in Internet Explorer 5.

The XML to MSI convert does the opposite and generates an MSI file from a XML document.

The converters are available free of charge, including the source code (GNU General Public License).

WWW msi2xml home page Check the web site frequently, not all updates will be announced on InstallSite

Orca

Orca comes with the Platform SDK, but must be installed separately. After you installed the SDK, you'll find a file Orca.msi in directory <ProgramFilesFolder>\Microsoft Platform SDK\Bin\.

Patch Viewer

This executable lists the contents of a patch (.msp) file that's dropped on it. It needs a copy of Schema.msi (from the Platform SDK) in its directory. Note that this tool can't display any transform information that's not in Schema.msi (e.g. custom tables).

ZIP MspView.zip   Written by Robert M. Dickau
File size: 8.959 bytes   Last update: 2020-04-14

Transform Viewer

This executable lists the contents of a transform that's dropped on it. It needs a copy of Schema.msi (from the Platform SDK) in its directory. Note that this tool can't display any transform information that's not in Schema.msi (e.g. custom tables).

ZIP MstView.zip   Written by Robert M. Dickau
File size: 4.965 bytes   Last update: 2002-04-14

MSI Helper Tools Collection

This package includes the following tools:

The tools require require VB runtime files and VC + MFC runtime files.

ZIP SomeMsiHelperTools.zip    Written by Evgeny Ushkalov
File size: 39.716 bytes   Last update: 2004-06-09

Debugging Custom Actions

There are several methods you can use to debug a DLL or EXE custom action in Windows Installer.

Using the MsiBreak Environment Variable

This is the "official" method suggested by Microsoft: To enable the debugging of a custom action, set the environment variable MsiBreak to the name of the designated action, which is case-sensitive, the same as it appears in the CustomAction and sequence tables. Debugging custom actions that are executing in the service requires the debugger to be attached to the service process (MsiExec.exe) ahead of time. For more details see topic "Debugging Custom Actions" in the Windows Installer SDK Help (msi.chm). be sure to register the MsiBreak environment-variable as a SYSTEM-environment-variable. On pre-2.0 Windows Installer it doesn't work when it is defined as a USER-variable. A reboot may be necessary to make sure all programs use the changed system environment.

Calling DebugBreak in the Custom Action Code

You can insert a DebugBreak() call at the beginning of your custom action code to invoke the debugger. For detailed instructions see InstallShield's knowledge base article Q103721.

Unforturnately, this doesn't work for custom actions called in the execute sequence on WinNT/2000 since a different process will be launched and the operating system thinks it is an unhandled exception.

Display Message Box and attach Debugger

Windows Installer expert Stein Aasmul's recommendation to debug DLL custom actions:

I find that the simplest approach is to show a message box from within the function you want to debug, and then just attach the debugger to the message box that pops up. Essentially just attaching to msiexec.exe - either the user context one or the system context one depending on how your custom action is sequenced.

To further speed things up I usually define a dialog show macro that is only enabled in debug builds and also sometimes set a debug level in the registry to determine how many dialogs to show. I.e DebugLevel = 4 shows all debug dialogs, DebugLevel = 1 shows only one dialog upon entry into the function etc...

Custom Action Debugging Support in IPWI 2.x

This article describes an undocumented and unsupported feature of InstallShield Professional - Windows Installer Edition 2.x

By setting a special registry key, you can instruct IPWI to invoke the Visual Studio debugger (or whatever development tool you use to create the DLL or EXE). This method has several advantages over the above mentioned ways:

Please read the following document for details about using the IPWI method. Note that this method is not available in ISWI version 1.x.

HTML CADebuggingIPWI.htm   Please send your feedback to mingbiaof@installshield.com
Last update: 2000-10-31

Developing Multilingual Installation Programs Using ISWI

This presentation from the 16th International Unicode conference (held March 27-30, 2000) explains how to create and manage setups for applications that are available in several languages, or support multiple langanguages. It explains how to use the localization and language filtering features in InstallShield for Windows Installer.

The Powerpoint slides contain detailed speaker notes, which may not be visible if you view the presentation via your browser. Therefore you should download the .ppt file and print it, choosing "Notes pages" as what to print, and checking "Pure black and white" as a print option.

ZIP multilingual.zip   Written by David L. Cole
File size: 387.476 bytes   Last update: 2000-06-08

Fix Square Brackets in WfWI

This utility (written in VB Script) analyses Wise for Windows Installer packages, checks for Registry keys which contain square brackets ([]) which are to be ignored in by the installer and converts them to [\[] and [\]]. This is done by checking against the Property table. This script fails if the registry table already contains lines like [\[] or [\]]

ZIP WfWIFixRegistryKeys.zip   Written by John Ridge
File size: 2.398 bytes   Last update: 2000-11-27

Hide "Advertise" Option on Unsupported Platforms

Only Windows 2000, Windows 98 and systems running Internet Explorer 4.01 with desktop update support advertised shortcuts. To suppress the advertise option in the feature selection tree dialog on systems that don't support advertising, the "no unsupported advertise" attribute has to be set for each feature. In IPWI 2.0 you can set this option in the Features view. However ISWI 1.x doesn't expose this attribute, so if you are using this version here is a tool that will set it on all features in a .msi file.

ZIP MsiNoUnsupportedAdvertise.zip   Written by Robert M. Dickau
File size: 9.708 bytes   Last update: 2000-06-06

Launchers and Runtime Installers

dotNetInstaller: setup bootstrapper for Windows

dotNetInstaller is a general-purpose setup bootstrapper for Microsoft Windows. dotNetInstaller enables the developer to define the application prerequisites and install the correct version(s) of these components in a predictable order based on the processor architecture, user operating system type and language, allow the user to download these components from the web, install these components directly from a single packaged setup, local media or both. dotNetInstaller is very feature rich and runs on all known Windows operating systems with a very tiny footprint.

WWW dotNetInstaller on GitHub

Microsoft Component Installer Software Development Kit

Microsoft Component Installer Software Development Kit helps you deliver the needed Windows component to your customer in order to run your application. The SDK provides support for installing MDAC, DirectX, .NET Framework, Windows Installer Runtime, in various versions and service packs. The resulting user experience is a small application they can download and run (or run from a CD). It provides the user with a simple wizard user interface that has details on the components that are needed and on the progress of the installation. The customer experience is already localized for over 20 Windows languages and will auto-detect the system locale at launch and will adjust its language as appropriate. After all prerequisites have been successfully installed the tool can execute a custom command (via ShellExecute), e.g. to launch your main setup or to navigate to a wen site. The tool handles reboots and also has a silent mode.

WWW Microsoft Download Center

Bootstrapper for MSI/.NET/Internet Explorer/MDAC

This is an enhanced version of the bootstrapper that's included in Visual Studio 2003. It can install MSI 2.0, .NET Framework 1.0 or 1.1, Internet Explorer 6.01, and MSDC 2.7. Finally it will launch your .msi setup. Source code is included in case you need to make adjustments.

WWW Article and download at The Code Project

Install MSI 2.0 Runtime with IPWI

The setup.exe bootstrapper originally included in InstallShield Professional - Windows Installer Edition 2 cannot install version 2.0 of the Windows Installer runtime files on Windows 2000. Here is a setup.exe that can be used as a replacement. It supports all the relevant functionality of InstallShield's setup.exe, including multi language setups, fixes a bug, can suppress the reboot while installing MSI 2.0, and works directly with the setup.ini created by IPWI. The readme file in the package includes detailed instructions. It upports downloading any version of MSI from the web (via HTTP, with proxy support), so you need not include the MSI redistributables with your package.
This tool has not yet been tested in all possible configurations and environments, so use at your own risk and please report any issues.

ZIP IPWI_MSI20.zip   Written by Steve Moss
File size: 253.466 bytes   Last update: 2001-11-27

InstallShield has also published a replacement for the setup.exe in IPWI 2.03 to install MSI 2.0. It is available from knowledge base article Q105501.

VSSetup Launcher for Windows Installer

VSSetup is a powerful program to launch installations made with Windows Installer. It installs Windows Installer if it is not installed, and can connect to a download URL or display a customizable message if the runtime installer is not included. It also checks if a previous version of the product is already installed and then makes an upgrade instead. VSSetup can install the MSI 2.0 runtime.

WWW Download VSSetup from the Vinga System AB web site

Autorun Program for MSI Packages

This is another launcher program for MSI setups. It uses autorun.inf to store the name of the msi file to launch. In contrast to other similar programs that run msiexec this launcher uses MSI API calls to execute the installation. It will not bootstrap the Windows Installer runtime files.

Source code and usage instructions are included in the package.

ZIP msiarun.zip   Written by Heath Stewart
File size: 28.594 bytes   Last update: 2002-01-11

Setup Launcher from Windows Installer SDK

The Windows Installer SDK 2.0 comes with a web-enabled Setup.exe bootstrapper for internet downloading. This bootstrapper can also be used for non web install packages as well. To do this, you just need to omit the ISETUPPROPNAME_BASEURL property when setting the properties through the msistuff.exe tool. If no value is present for this property, the location of Setup.exe defaults to removable media. This will allow the bootstrapper to be used on floppy, CD, network location, or whatever else you wish.
The following is an example of a command line that will configure the bootstrapper for removable media:
MsiStuff setup.exe /d MySetup.msi /n MySetup /v 200 /a Ansi/Instmsi.exe /w Unicode/Instmsi.exe

Written by Tim Byng
Last update: 2001-09-19

Silent Install of Windows Installer Runtime Engine

To install the Windows Installer runtime silently, use the following command line:

instmsiw.exe /q /c:"msiinst.exe /i instmsi.msi /q"

(instmsiw.exe is the file name of the self extracting engine installer - you may have to replace it with the actual file name depending on target platform)

Installing MDAC and DCOM

Micosoft has not yet published merge modules that install MDAC and DCOM. They are working on a merge module for MDAC 2.7 which is currently in beta test. It is a wrapper for mdac_typ.exe and is expected to be available shortly after Windows XP has been released to manufacturing. For the time being you have several options to install MDAC and DCOM with your setup:

Wrapper Exe

Microsoft has created a wrapper exe that will first install MDAC and DCOM, and then launch your msi setup. This is documented in Microsoft Knowledge Base article Q257604. Here is an improved version of this wrapper: it supports multiple languages of MDAC (to install the appropriate language for your operating system) and also checks the installed MDAC version and will install MDAC if the included version is newer.

ZIP rdbwrap.zip   Written by Roel de Bruyn
File size: 84.856 bytes   Last update: 2001-04-03

Launch the MDAC and DCOM Installers from your Setup

If you prefer to integrate the MDAC and DCOM installation to your msi setup, this document describes the required steps. It article was written with InstallShield for Windows Installer in mind but also works for InstallShield Developer 7. The concepts described apply to other authoring tools as well, however the steps will be different.

HTML mdac_dcom.htm   Written by Pieter van Kampen, updated by Astrid Broecker and Stefan Krueger
Last update: 2002-01-07

Use Merge Modules from Tool Vendors

Wise and InstallShield have created merge modules that install MDAC and DCOM. They are shipped with their respective authoring tools.

Customizing MSDE 2000 Installation

Setting the Instance Name and Other Parameters with MSDE Merge Modules

If you want to install two applications that both use the MSDE 2000 merge modules, i.e. you want to have two instances of MSDE, you must set the InstanceName to a unique number. When installing MSDE with Microsoft's setup.exe this can be specified in the setup.ini file. However if you are using the merge modules, you have to set the property SqlInstanceName, which can be done in a type 51 custom action. Add this custom action at the very beginning of the InstallExecute sequence. You can set other properties as well to customize the MSDE installation. It is important to place the type 51 custom action at the beginning of the execute sequence. Placing it in the user interface sequence, or in the execute sequence after CostInitialize, will often fail. The following table shows which properties relate to the settings documented for setup.ini:

Setup.ini parameter Property name
TARGETDIR SqlProgramDir
DATADIR SqlDataDir
INSTANCENAME SqlInstanceName
COLLATION SqlCollation
CALLBACK SqlCallback
SECURITYMODE SqlSecurityMode
UPGRADE SqlUpgrade
UPGRADEUSER SqlUpgradeUser

Note that the parameters SAPASSWORD and USEDEFAULTSAPWD that are mentioned in the documentation are actually ignored (they have been removed because of security issues). Instead you can set SECURITYMODE=SQL to have the installed instance configured to use SQL Server Authentication with a null sa password. This is documented in the readme.txt file.

Sample for setting the security mode: Create a custom action with the following settings

Name: SetSecurityMode
Type: 51
Source: SqlSecurityMode
Target: SQL

Note that this is only necessary on Windows NT/2000. On Windows 9x this security mode will always be used.

For additional information see Microsoft Knowledge Base article Q281983.

Written by Stefan Krueger based on information from James Hancock and Paul Vink
Last update: 2001-08-24

Changing the Default Login Authentication Mode

While installing SQL Server 2000 Desktop Engine using the Windows Installer Merge Modules you can change the default login authentication mode from Windows NT to SQL. There is an undocumented property SECURITYMODE that you can set to "SQL".

Another way to change the security mode after installation is to stop SQL Server and set the following registry key
HKLM\Software\Microsoft\MSSqlserver\MSSqlServer\LoginMode
to 0 for Mixed Mode or 1 for integrated. (Integrated is the default setup for the SQL Server 2000 Data Engine.)

For additional information see Microsoft Knowledge Base article Q285097.

Written by Stefan Krueger
Last update: 2001-08-24

Integrate InstallSite in the InstallShield IDE

The InstallShield development environment uses a lot of HTML. That brought up the idea to directly access the web from the InstallShield IDE. This package will add a "InstallSite Today" item to the IDE that includes latest news and links to the most important places on the web. Thus you can check the InstallSite bugs lists, participate in the discussion forum, access InstallShield's knowledge base or query Microsoft's DLL Database from within the IDE (see screenshots).
This extension was developed for the English editions of InstallShield Developer 7.03 and 7.04, InstallShield Windows Installer 2.03 and InstallShield AdminStudio 3.01. It will not work with InstallShield X.
Use this tool on your own risk, and be sure to send any bug reports or suggestions to the author.

ZIP InstallSiteToday.zip   Written by Stefan Krueger
File size: 16.235 bytes   Last update: 2002-07-11

flagde.gif (170 Byte) Deutsche Ausgabe

Für die German Edition von InstallShield Developer 7.03 verwenden Sie bitte diese Version:

ZIP InstallSiteHeute.zip   Written by Stefan Krueger
File size: 5.115 bytes   Last update: 2002-07-07

Updates and Patches

This paragraph can now be found on a separate page.

Windows Installer Terminology for InstallShield Professional Users

ISWI uses several terms that you may know from InstallShield Professional 5/6, but with a different meaning. The following table cross-references and explains such words to avoid confusion for users migrating from IS Pro to ISWI. It is not intended as a complete glossary for Windows Installer.

Windows Installer InstallShield Professional Explanation of Windows Installer Term
Feature Component User selectable item in the setup structure. Can have sub-features.
Component File Group Contains the application files, shortcuts and registry entries. Cannot have sub-components. All files in a component are copied to the same destination directory.
INSTALLDIR TARGETDIR Destination directory for the application files, typically user selectable. Some components may have other destination settings, e.g. the common files folder.
TARGETDIR   In administrative install: the network location where the setup disk images are copied to.
In InstallScript custom actions: identical to INSTALLDIR (i.e. TARGETDIR is initialized to the value of INSTALLDIR, and changes to TARGETDIR are reflected in INSTALLDIR.

Obsolete tools that have been removed from InstallSite

 

 

English News Discussions Windows Installer Related Tools More Help InstallScript About InstallSite Shop Site Search
deutsch Neuigkeiten Diskussionsgruppen Windows Installer MSI FAQ Artikel     Shop Suche

Copyright © by InstallSite Stefan Krueger. All rights reserved. Legal information.
Impressum/Imprint Datenschutzerklärung/Privacy Policy
By using this site you agree to the license agreement. Webmaster contact