|
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
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 KruegerGERMAN: Deutsche Version dieses Artikels
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 KerlGERMAN: Deutsche Version dieses Artikels
RUSSIAN: Перевод на русский язык доступен по ссылке: http://www.installsite.ru/go/embeddedlang.htm
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 KruegerGERMAN: Die deutsche Version dieses Artikels steht unter http://www.installsite.de/go/gdiplus.htm
RUSSIAN: Перевод на русский язык доступен по ссылке: http://www.installsite.ru/go/gdiplus.htm
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
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 - registration required)
Written by Phil WilsonRUSSIAN: Создание лучшей инсталляции
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 - registration required)
Written by Phil Wilson
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 - registration required)
Written by Phil Wilson
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
Dieser Artikel in deutsch (MSDN Deutschland)
Provides development and procedural guidance for developers deploying .NET applications, and discusses the issues and processes for deploying .NET applications. The article covers the following topics:
- Manage the deployment process in different environments, such as development, test, staging, and production.
- Understand the dependencies of your solution on the .NET Framework.
- Become familiar with deployment technologies, such as the Microsoft Windows® Installer service and the setup and deployment projects provided by Microsoft Visual Studio® .NET development system.
- Understand the issues that affect specific types of solutions, such as Windows Forms applications, Web applications and Web services, and Windows service applications.
- Understand technical issues associated with installing modern distributed .NET applications, such as:
- COM interoperability
- Shared and private assemblies
- Configuration files
- COM+ applications
- Serviced components
- Application resources (such as message queues, event logs, and performance counters)
- Registry settings
- Localized resources
- Choose appropriate packaging mechanisms based on specific application requirements.
- Choose appropriate distribution strategies for actually deploying your solution.
- Understand and manage the issues with upgrading and patching your applications after they are installed in the production environment.
Read the full article (MSDN)
Written by Kenny Jones, Martin Harwar, and Edward Jezierski, Microsoft Corporation
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
Dieser Artikel in deutsch
When creating a custom action in InstallShield Professional - Windows Installer Edition you have several in-script execution options to choose from:
- Immediate Execution
- Deferred Execution
- Rollback Execution
- Commit Execution
- Deferred Execution in System Context
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 KruegerGERMAN: Deutsche Version dieses Artikels
RUSSIAN: Перевод на русский язык доступен по ссылке: http://www.installsite.ru/go/installationphases.htm
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
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:
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
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
Copyright © 1997-2008 by InstallSite Stefan
Krueger. All rights reserved. Legal
information.
Impressum,Datenschutzerklärung,
Haftungsausschluss
By using this site you agree to the license
agreement. Webmaster contact