Welcome to MSDN Blogs Sign in | Join | Help

September 2005 - Posts

Best Practice Guidelines for Building Quality Installs: Part 1, the Basics

This is the first in a series of Best Practice Guidelines for Building Quality Installs . Let's start with the basics of quality Windows Installer (MSI) package. Prior postings the series: Introduction . Build Components According to Component Rules To

Best Practice Guidelines for Building Quality Installs: Part 0, the Introduction

With the start of the Profesional Developers Conference 2005 , the Windows Installer Team is starting a series of Best Practice Guidelines for Building Quality Installs . Windows Installer (MSI) is a rich engine with many features to solve installation

How should I determine the success or failure of a Windows Installer install?

Question How should I determine the success or failure of a Windows Installer install? Answer Generally there are two ways of invoking Windows Installer, a MSIExec command line call or an MSI API (MsiInstallProduct, MsiInstallProductEx, MsiReinstallProduct).

How do I get a deep view of what Windows Installer is doing?

Question How do I get a deep view of what Windows Installer is doing? Answer One of the comments I got from the PDC was that the SDK documentation and commercial tools lacked sufficient depth if one really wanted to figure out what was going on. Verbose

Why can't I patch or uninstall a component without a ComponentId?

Question Why can't I patch or uninstall a component without a ComponentId? Answer Check the Windows Installer documentation on Component Table : ComponentId A string GUID unique to this component, version, and language. Note that the letters of these

Any clues to why we're seeing Error code 1912: Could not unregister type library for [file]?

Question Any clues to why we're seeing Error code 1912: Could not unregister type library for [file]? Answer The error comes from the typelibrary API -- so it's what's having an issue. From the log file: MSI (s) (84:FC) [11:44:22:589]: Executing op: TypeLibraryUnregister(,,FilePath=C:\Program

Recommended Background on Versioning and Component Rules

To acquire background on Versioning and Component Rules, we recommend Rob Mensching's Background blogs Component Rules 101 Windows Installer Components Introduction. Component Rules The following MSDN topics help folks understand the components rules

Insights into the underlying Windows Installer reboot behavior.

Here are a set of frequent and infrequent questions around Windows Installer's reboot behavior Question What happens if the user reboots their machine during an installation? Answer This is called a suspended installation. If you’ll search the archives

How do I find all the Windows Installer packages installed on my machine?

Question How do I find all the Windows Installer packages installed on my machine? Answer Here’s the APIs and the Properties one would need MsiEnumProducts(DWORD,LPTSTR) function [Windows Installer] MsiEnumProductsEx (8 Parameters) function [Windows Installer]

What are the upper limits of the CAB file format?

Question What are the upper limits of the CAB file format? Answer The only compressed file type supported natively by Windows Installer is the Cabinet (CAB) format . Multi-part CABs can get the total size of a set of files past 2GB, possibly to 64K *

How do I lookup the error text associated with a given error code return from msiexec or MsiInstallProduct?

Question How do I lookup the error text associated with a given error code return from msiexec or MsiInstallProduct? Answer MsiExec returns system error codes so FormatMessage is available to obtain the message text. Related references Windows Installer

How do I read an environment variable into the MSI?

Question How do I read an environment variable into the MSI? Answer Check out the MSDN topic Restrictions on Property Names [Windows Installer] which says Property names prefixed with % represent system and user environment variables. Check out the MSDN

Catch our session at Microsoft PDC 2005!

Hello everyone, Just a reminder that Tyler Robinson and Jamie Cool will be speaking about software installation on Windows Vista and what cool new features we have in store for the next release of the Windows Installer here at the PDC. FUN222 - What's
Posted by Windows Installer Team | 0 Comments
Filed under:

How to get file's compressed size inside an msi?

Question How to get file's compressed size inside an msi? Answer Windows Installer SDK tools like PatchWiz.dll and WiMakCab.vbs with msifiler.exe will compress files into a cabinet ( .cab ) file either separate or added as a sub- storage of the MSI, MSP,

Is it guaranteed that the external user-interface handler gets called by the Installer in the same thread that calling InstallProduct?

Question Is it guaranteed that the external user-interface handler gets called by the Installer in the same thread that calling InstallProduct? Answer No, in fact they will come from different threads. Content credit also belongs to Ken, MSI Team Dev.

Some Patch Detection Designer Pointers for a MSI Newbie

Questions MSP Patch detection questions from a MSI newbie: Is there any API which directly consumes the Patch XML Blob and intimates if it is applicable/Installed on the target system as the whole set of information is already available in the XML blob?

Live from PDC 2005! No power, no problem ;^)

Rob and I had an uneventful Alaska Air flight from SeaTac to LAX. We've picked up car from Avis (well, a minivan) and then were off to the Biltmore. Dropped our bags, walked a dozen L.A. blocks to the Conference Center and grabbed a quick lunch. As we
Posted by Windows Installer Team | 6 Comments
Filed under:

Any tips on getting the cancel button working for a deferred custom action?

Question Any tips on getting the cancel button working for a deferred custom action ? During our MSI uninstallation (full GUI mode), at the beginning of the uninstallation we call a deferred CA. When this CA is executing, if the user clicks the cancel

Ooops, missed that feedback management tab...

To those that have been posting comments as Anonymous, I apologize for the fact they had not been making their way through to the blog entries. I had the "Moderate comments by Anonymous users only" switch flipped but did not realize that meant I needed

How to disable advertising?

Question How to disable advertising? One of the requirements that I've been given is disable Advertise for our product. I'm supposed to implement a "Advertise is not supported" dialog that is displayed when the user tries to install with ACTION=ADVERTISE

Any pointers for troubleshooting 2737 Could not access custom action [2], entry [3], library [4] Available in Windows Installer versions 1.0, 1.1, and 1.2.?

Question Any pointers for troubleshooting 2737 Could not access custom action [2], entry [3], library [4] Available in Windows Installer versions 1.0, 1.1, and 1.2.? Answer First, start with the Windows Installer Error Messages reference as you have done.

Tyler and Robert on their way to PDC 2005

Los Angeles here we come! Tyler's speaking at FUN222 - Windows Vista: What’s New in Software Installation for Windows Vista: Exploring the Windows Installer (MSI) and ClickOnce Options in room 406 AB on Friday the 16th at 1pm . Robert's signed up to co-own
Posted by Windows Installer Team | 2 Comments
Filed under:

Who are you Hem?

I have been with the Windows Installer team (i.e. MSI Team) for three years now. During this time I helped the team ship XPSP2 (MSI 3.0), 2003 SP1 (MSI 3.1) and now Vista (MSI 4.0). It has been a rewarding experience working with this dev team. When I

How do detect the MSI version on the computer?

Question How do detect the MSI version on the computer? Answer Tyler mentioned the following in his blog entry Windows Installer 3.1 Version Confusion If you want to check the version of the Windows Installer on your system, check the version of MSI.DLL

Troubleshooting tips for constructing UTF8 MSIs from IDTs?

Problem I'm trying to import UTF8 encoded IDT files to make a UTF8 code page MSI but the import is failing. Can you help me troubleshoot? Solution Reviewing the SDK, the topics ASCII Data in Text Archive Files and Archive File Format are not entirely

Why can't I change the target directory path during a Maintenance Installation?

Question Why can't I change the target directory path during a Maintenance Installation? This is the last line of Changing the Target Location for a Directory [Windows Installer] where it says Do not attempt to change the target directory path during

Why can I futher compress an MSI with a compressed CAB?

Question Why can I futher compress an MSI with a compressed CAB? I discovered that our MSI can be further compressed with WinZip from 1798K to 1488K. Answer The resulting MSI file you’re getting has two pieces. One is the MSI database which is not compressed.

On MSI 3.0, how does a MSP know it supersedes the previous patches?

Question On MSI 3.0, how does a MSP know it supersedes the previous patches? Answer Please read the MSDN site on patch sequencing or the patch sequencing whitepaper. Both explain this in detail. Supersedence is based upon the authored MsiPatchSequence

What would be the best way to diagnose error 2762 "Cannot write script record. Transaction not started."?

Question What would be the best way to diagnose error 2762 "Cannot write script record. Transaction not started."? Answer Usually means that your InstallExecuteSequence table isn't authored correctly. Actions that generate script opcodes have to be sequenced

Is there a way to parse out of the ADDLOCAL in a custom action inside the MSI to check the features that were specific to see if they exist before this error is generated?

Question Is there a way to parse out of the ADDLOCAL in a custom action inside the MSI to check the features that were specific to see if they exist before this error is generated? I have a problem where a user enters a features on the command line (this

Tips on troubleshooting why the patch install requires to resolve the source?

Question Tips on troubleshooting why the patch install requires to resolve the source? Answer In your vebose log, examine the REINSTALLMODE property. If REINSTALLMODE is set to “amus” it means always overwrite existing files. This will definitely require

how I can get a blank schema.msi of version 300?

Question how I can get a blank schema.msi of version 300? I installed platform SDK for win2k3 sp1, but it only has schema.msi for version 100, 110 and 120. Answer There isn't one. The schema.msi included at the root in the database directory has all of
 
Page view tracker