From MSI to WiX, Part 26 – Shortcut: To pin or not to pin?

As you may already know, Windows 7 supports setting properties on shortcuts and MSI 5.0 provides MsiShortcutProperty table to enable setting shortcut properties from installation package. Let’s start with updated nonadvertised shortcut sample from Part 10: <?xml version=”1.0″ encoding=”UTF-8″?>   <?define APPPATH = “D:\Learning\Wix\ShortcutProperty\ConsoleApp\bin\Debug”?>   <Wix xmlns=””>   <Product Id=”59226dd7-6c8a-41f4-900d-697967752465″            Name=”ShortcutProperty”            Language=”1033″            Version=”″…


From MSI to WiX, Part 25 – Installable Items – Updating XML files using XmlFile

To use XmlFile element we need to: Add  reference to WixUtilExtension extension. Add util namespace to <Wix> element: <?xml version=”1.0″ encoding=”UTF-8″?> <Wix xmlns=””      xmlns:util=””> Here is what we can do with existing XML file using XmlFile element: Set the value of an attribute Set the text value of an element Create new element Create new…


From MSI to WiX, Part 24 – DLL Custom Actions – Get property value and obtaining/changing session information

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 value.  Description for MsiGetProperty function has a very good sample on…


Documentation on WiX API

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 something like this in the WiX help file….


From MSI to WiX, Part 23 – DLL Custom Actions – Logging and setting properties

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. New value for the property or NULL (or empty string) to remove property. To get the installation handle we could cache it…


From MSI to WiX, Part 22 – DLL Custom Actions – Introduction

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 discussing what is in the generated code, let’s talk about what Windows Installer is expecting…


Можно ли использовать данные, полученные при использовании RegistrySearch в RegistryValue

English version is here.   Вопрос: Можно ли использовать данные, полученные при использовании RegistrySearch в RegistryValue? Нечто вроде этого:   <Property Id=”PROP1″>     <RegistrySearch Id=”search1″                     Root=”HKLM”                     Key=”somekey”                     Name=”somename”                     Type=”raw” /> </Property> … <RegistryValue Type=”???” Name=”othervalue” Value=”PROP1″ />   Прежде всего, для того чтобы использовать свойство необходимо, чтобы атрибут элемента имел тип…


Как сохранить значения свойств использовавшихся при начальной установке

English version is here.   Один из наиболее часто задаваемых вопросов – как сохранить значение свойства, которое было присвоено свойству во время инсталлирования программы (присвоенное либо через параметер в командной строке или через пользовательский интерфейс как, например, INSTALLLOCATION). В качестве примера возьмем одну из возможный ситуатций. Рассмотрим очень простой пример. Идея состоит в том, что пользователь передает через командную строку значение, которое необходимо записать…


Вопросы и ответы

Здесь будут собраны ответы на вопросы, заданные на wix-users mailing list: Можно ли использовать данные, полученные при использовании RegistrySearch в RegistryValue Как сохранить значения свойств (properties) использовавшихся при начальной установке  


Preserving properties used during install

Русская версия здесь.   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 maintenance or uninstall. For example, here is one of the possible…