Shop

InstallShield
Advanced Installer
AdminStudio
more / weitere

InstallShield und AdminStudio Schulungen

weitere Infos

Windows Installer Technical Articles

Careful with that Hyperlink (on your MSI dialog)

One of the new features in version 5 of the Windows Installer runtime is support for hyperlink controls on setup dialogs. Remember that MSI 5 is only available on Windows 7 and Windows Server 2008 R2, but there's no redistributable for down-level platforms.
In most cases when introducing new features, the MSI team made sure they don't break your setup on older runtime versions. For instance, older MSI versions simply ignore new tables that they can't use. This enables developers to create a setup that will run with basic functionality on older platforms but on the latest MSI version the new features would "light up".
The hyperlink control is different, maybe because it's not a table but a new control type in an existing table, the Control table. Thus, it causes your setup to fail on Windows Installer versions prior to MSI 5.
Read the full article
Written by Stefan Krueger

Microsoft's recent Security Updates for Visual Studio break Windows Installer Updates

The typical symptom is missing or not updated files after you install a Small or Minor Update to your application (Major Upgrades are not affected). In the installer log file you'll notice that some features have been switched to "advertised" state and instead of being installed locally. The actual cause is noted in the SELMGR error message in the log similar to this:
SELMGR: ComponentId '{-GUID-}' is registered to feature '-Feature-Name-', but is not present in the Component table. Removal of components from a feature is not supported!
This happens if your setup includes a merge module like Microsoft_VC80_CRT_x86.msm and you rebuilt your setup package after installing security updates 971090 and 973673 for Visual Studio 2005 SP1 or 971092 and 973675 for Visual Studio 2008 SP1. These security updates install newer versions of merge modules.
Read the full article
Written by Stefan Krueger

Reasons why your setup may fail on Windows Vista

Windows Installer is not just a technology but also a set of rules and best practices. While these rules have been specified in the SDK for several years, many of them haven’t been enforced, and ignoring them didn’t break your setup. But on Windows Vista setups that don’t follow best practices may eventually fail on Vista.
This article doesn’t talk about the new features of MSI 4.0 on Windows Vista. It’s intention is to help you avoid those pitfalls, or to fix your setup to make it compatible with Vista. It includes a list of problems that cause setups to fail on Windows Vista, while they seemingly worked properly on Windows XP. In many cases the problem becomes evident because of UAC (User Account Control): On Vista, even members of the Administrators group work with restricted permissions most of the time.
Read the full article
Written by Stefan Krueger

Using Dual ListBoxes as Replacement for a Multi-Selection ListBox

With Windows Installer's user interface tables you cannot create listboxes that allow selection of multiple entries. This article explains an alternative solution that uses two list boxes side by side, one for "available" items and one for "selected" items, with Add and Remove button to move entries from one list to the other. It also shows how to dynamically populate MSI tables using VBScript custom actions (to add rows to the ListBox table or to remove them), and how to refresh a dialog using the "twin dialog" trick (which is required to refresh the listboxes on screen after adding or removing items).
Read the full article
Written by Stefan Krueger

GERMAN: Deutsche Version dieses Artikels

Multi-Language MSI Packages without Setup.exe Launcher

With embedded language transforms you can build a multi-language Windows Installer package that automatically runs in a language that matches the operating system language, without need for a setup.exe launcher. This is an undocumented feature in Windows Installer (works with MSI 2 and MSI 3). While this functionality is not documented because it has not been tested extensively by Microsoft, the MSI redistributable package (instmsi.exe) internally makes use of it. This article describes how to make use of this feature in your own setup, which is quite easy.
Read the full article
Written by Andreas Kerl

GERMAN: Deutsche Version dieses Artikels
RUSSIAN: Перевод на русский язык доступен по ссылке: http://www.installsite.ru/go/embeddedlang.htm

A Developer's View of the GDI+ Security Vulnerability

You've probably already heard about the critical security vulnerability that Microsoft has discovered in their GDI+ library. While most articles about this topic describe which actions you should take as a user of Microsoft products, this article will focus on the implications this vulnerability has for software developers, particularly in setup programs.
Read the full article
Written by Stefan Krueger

GERMAN: Die deutsche Version dieses Artikels steht unter http://www.installsite.de/go/gdiplus.htm
RUSSIAN: Перевод на русский язык доступен по ссылке: http://www.installsite.org/ru/go/gdiplus.htm

Rob Mensching's View of Windows Installer

Rob Mensching is a Software Design Engineer at Microsoft. He's been with the company for a bit over four years now and most of that time was spent on the Office setup/deployment team beating the Windows Installer (aka MSI or Darwin) into submission. Before he was hired as a "full timer" he was an intern on the Windows Installer team, where he created things such as msifiler.exe, msival2.exe, orca.exe, and wrote the original Merge Module (aka MSM) specification and merge API (mergemod.dll). Rob is running a Blog where he discusses basic and advanced Windows Installer topics and also talks about the hiostory of MSI.
List of Blog articles

Creating a Better Installer

When your coding and testing is finally complete, you still need a sure-fire, well-behaved installation routine. Phil presents some important points to keep in mind to make sure you’re making the right first impression with your users.
Read the full article (Windows Developer Network/Dr. Dobb's)
Written by Phil Wilson

RUSSIAN: Создание лучшей инсталляции

A COM Registration Spy

Installation is one of the messier areas of testing. Installing COM objects can splatter a variety of data all over your registry, and if you fail to roll one of them out before the next test, then the same test may mysteriously behave differently when run twice in a row. This article shows how a new Windows 2000 function, RegOverridePredefKey(), can give you programmatic control over the registry I/O of COM objects.
Read the full article (Windows Developer Network/Dr. Dobb's)
Written by Phil Wilson

Customizing Windows Installer

The latest version of Microsoft's installation software is Windows Installer, which presents a new way of doing things at install time. This article helps you get acquainted with the new installation philosophy, and demonstrates how you can get control to handle custom installation tasks.
Read the full article (Windows Developer Network/Dr. Dobb's)
Written by Phil Wilson

Writing Setup Packages for Your Access Databases

Learn how Microsoft Access developers can create custom Microsoft Windows Installer (.msi) setup programs for their Access .mdb files using the Northwind sample database as an example. How to include supporting files (help files, readme documents, and so on) into the setup package is also illustrated.
Read the full article (MSDN)
Written by Sanjay Jacob, Microsoft Corporation

GERMAN Dieser Artikel in deutsch (MSDN Deutschland)

Microsoft Windows Installer 2.0

Microsoft has released version 2.0 of the Windows Installer runtime files and the Windows Installer SDK. Besides support for Windows XP and 64 bit applications, this version includes bug fixes and introduces useful operating system properties, e.g. to detect whether setup is running on NT Workstation or Server, or an XP Professional or Home Edition. It also significantly simplifies updates by eliminating the need for complicated ADDLOCAL and REINSTALL constructs, and no longer requires a reboot after installing the runtime files. The good news is that you can benefit from these improvements in your existing projects. Some modifications in your authoring tool may be required to install the new runtime files. As a result of the improvements and fixes in MSI 2.0 you may find that your setups and patches behave differently than they used to or even fail. Even if you don't include MSI 2.0 in your own setup, the new version may already be present on the target machine, so you should at least include MSI 2.0 in your testing scenario.
Read the full article
Written by Stefan Krueger

GERMAN Dieser Artikel in deutsch

Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer

When creating a custom action in InstallShield Professional - Windows Installer Edition you have several in-script execution options to choose from:

This article explains what these options mean and how they affect in which phase your custom action is executed at installation run time. It also helps you to insert the custom action in the correct location in the user interface or execute sequence, in order to avoid error messages like "Cannot write script record. Transaction not started."
Read the full article
Written by Stefan Krueger

GERMAN: Deutsche Version dieses Artikels
RUSSIAN: Перевод на русский язык доступен по ссылке: http://www.installsite.ru/go/installationphases.htm

Detecting Internet Explorer and Other Applications with Windows Installer

Often applications require that a certain version of Microsoft Internet Explorer or some other third party software be installed on the target system. For instance, HTML Help requires Internet Explorer 3.0. This article explains how to search for Internet Explorer 5.5 or above and abort setup with an error message if it is not found. The same technique can be used to search for other applications.
Read the full article
Written by Stefan Krueger

Custom Setup Options in Windows Installer

Most Windows Installer based setups offer you to perform a Custom setup type, where you are presented a tree view of all features. Attached to each feature is a drop down menu with options as shown in the screen shot below:

Feature options

It's not very obvious how Windows Installer decides which choices will be displayed, what their effect is in your setup at runtime, how they relate to the settings in the feature and component properties of your project, and what you can do to remove undesired options. This article tries to shed some light on all these secrets. It is mainly based on observations and experiments, since I didn't find most of this documented in the Windows Installer SDK.
Read the full article
Written by Stefan Krueger

Component, package, product and upgrade codes in Windows Installer

You can seen these alphanumeric strings in curly braces - also known as GUIDs - in many places in InstallShield Professional - Windows Installer Edition. This article describes the purposes of these component IDs, package codes, product codes and upgrade codes. It gives guidelines when you should change these codes and when not. And it explains why you can't use human readable strings in these places. (This article was originally published in the December 2000 issue of the InstallShield Newsletter.)
Read the full article
Written by Stefan Krueger

 

 

 

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