In previous post we looked at how to set propery's value. Getting property value is more involved because we need to make sure that provided memory buffer for property value is big enough to hold the value. Function MsiGetProperty is used to get a property...

I just want to let everybody know that I am working on documenting WiX API, namely - wcautil and dutil libraries.
I don't mind if this will become part of official WiX documentation. In fact, I hope - it will, because I personally, would like to see...

Let's start with setting property value using MSI API MsiSetProperty . This function takes three parameters:
An installation handle, originally passed to custom action's function by Windows Installer.
Name of the property to set or remove.
...

Today I am starting a mini series on writing C++ custom actions.
Let's start with wizard-generated custom action project. Start Visual Studio and select "C++ Custom Action Project". Set "CAIntro" as the name of the project.
Before we will start...

Русская версия здесь .
One of the most common questions is how to preserve the value of property used during install (either passed through command line or properties like INSTALLLOCATION which can be changed in the UI) so that it can be used during...

Русская версия здесь .
This post is an answer to this question sent to wix-users mailing list:
Is it possible to use RegistrySearch result in RegistryValue? Something like this:
<Property Id="PROP1">
<RegistrySearch Id="search1...

The main page for the series is here .
Introduction
We will start with exploring Required Dialog Boxes. Microsoft Windows Installer uses three special dialogs in response to the following events during product installation:
Exit Dialog...

The main page for the series is here .
Introduction
When we install any msi what we are doing is we are installing a Product which is contained in a package (msi file). Every product consists of one or more features and every feature contains...

The main page for the series is here .
Code for this topic is attached.
Introduction
Today we will start exploring custom actions, how to write them, what makes custom action good custom action and everything else related to custom actions...

The main page for the series is here .
Introduction
Today we will explore the database of installed products.
In standalone administartive tools scripts you need to create an Installer object using the following commands:
Dim Installer...

The main page for the series is here .
Introduction
This post starts a series on Windows Installer Object Model . We will explore how and when to use automation interface objects, properties, and functions.
Roughly, we have three main groups...

The main page for the series is here .
Introduction
Before we start talking about installing files, I feel that we need to understand the options we have in distributing files that need to be installed with our installation package.
The...

The main page for the series is here .
Introduction
Today's topic is how to create and modify Ini files .
MSI story
Ini file contains configuration information that application needs during run-time.
MSI has two tables related...

The main page for the series is here .
Introduction
Today's topic is how to create registry keys and values .
MSI story
Information about registry keys and/or values to be installed is authored in the Registry table. This table is...

The main page for the series is here .
Introduction
This post is from the same group as Part 6 and 7.
Normally, we use transitive components when our product has system-specific component and depending on system state we want to install...

Problem
Property is created, but when deferred custom action tries to get its value - property either does not exist or its value is empty.
Sample
Let's test it with immediate custom action first to make sure that property has a value:
...