Alex Shevchuk

Always listen to experts. They’ll tell you what can’t be done, and why. Then do it. - Lazarus Long

Browse by Tags

Related Posts
  • Blog Post: From MSI to WiX, Part 6 - Customizing installation using Custom Tables

    The main page for the series is here . Introduction Say, we need to change an xml config file based on the environment our program will run in. The most straightforward way of achieving that will be passing values which will go to the xml config file through public properties from the command...
  • Blog Post: From MSI to WiX

    Русская версия здесь . This is a series of articles on building installation packages using WiX. From MSI to WiX, Part 1 - Required properties From MSI to WiX, Part 2 - ARP support From MSI to WiX, Part 3 - Launch Conditions and Application Search From MSI to WiX, Part 4 - Features...
  • Blog Post: From MSI to WiX, Part 20 - User Interface - Required Dialog Boxes

    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 - shown when installation completed successfully...
  • Blog Post: 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...
  • Blog Post: Вопросы и ответы

    Здесь будут собраны ответы на вопросы, заданные на wix-users mailing list: Можно ли использовать данные, полученные при использовании RegistrySearch в RegistryValue Как сохранить значения свойств (properties) использовавшихся при начальной установке
  • Blog Post: From MSI to WiX, Part 14 - Installable Items - Registry keys and values

    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 processed by WriteRegistryValues and RemoveRegistryValues...
  • Blog Post: How to run an installer without installing the product

    To run an installer without actually installing the product set the value of EXECUTEMODE property to "None" in the command line: MsiExec /I MyProduct.msi EXECUTEMODE=None That will let you to test-run your installer without actually updating the target system. Remember: Well behaving custom...
  • Blog Post: 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...
  • Blog Post: About MSI and WiX in general

    Some random posts about MSI and WiX. How Windows Installer Engine installs the installation package? Conditions for different types of installation Documentation on WiX API
  • Blog Post: From MSI to WiX, Part 19 - The Art of Custom Action, Part 1

    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. Let's start with very simple sample. We...
  • Blog Post: From MSI to WiX, Part 10 - Shortcuts

    The main page for the series is here . Introduction Microsoft Windows Installer supports four installation states for product features: Installed locally Installed to run from source Absent Advertised When feature is advertised, it is not actually installed on the local...
  • Blog Post: From MSI to WiX, Part 12 - Customizing installation using Transitive components

    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 one component or the other. For example, we might...
  • Blog Post: From MSI to WiX, Part 9 - Patching

    The main page for the series is here . Introduction I'll show a very simple sample of small update . Directory structure for the sample The directory structure I am using for this sample is: Patching SmallUpdate RTM QFE Include Patch Project TestApp ...
  • Blog Post: Questions and Answers

    Some questions asked on wix-users mailing list: Is it possible to use RegistrySearch result in RegistryValue? Preserving properties used during install
  • Blog Post: 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...
  • Blog Post: From MSI to WiX, Part 15 - Installable Items - Ini files

    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 to Ini files: IniFile and RemoveIniFile . IniFile...
  • Blog Post: 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. Any...
  • Blog Post: Можно ли использовать данные, полученные при использовании RegistrySearch в RegistryValue

    English version is here . Вопрос: Можно ли использовать данные, полученные при использовании RegistrySearch в RegistryValue? Нечто вроде этого: <Property Id="PROP1"> <RegistrySearch Id="search1" Root="HKLM" Key="somekey" Name="somename" Type="raw" /> <...
  • Blog Post: Property does not exist or empty when accessed from deferred custom action

    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: <? xml version = " 1.0 " encoding = " UTF-8 " ...
  • Blog Post: From MSI to WiX, Part 16 - Installable Items - Handling Installation Media

    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 following elements are involved in the distributing...
  • Blog Post: От MSI к WiX

    English version is here . Словарь здесь . Это серия статей о том как создать инсталлер используя WiX. От MSI к WiX, часть 1 - Обязательные свойства От MSI к WiX, часть 2 - Поддержка "Установка и удаление программ" От MSI к WiX, часть 3 - Условия запуска и поиск программ От MSI к...
  • Blog Post: От MSI к WiX, часть 1 - Обязательные свойства

    Главная страница серии здесь . English version of this page is here . Введение Это не дословный перевод англоязычной версии, а просто пересказ того, что было написано первоначально по английски. Там где у меня не получится найти подходящий русский термин, я буду использовать английскую...
  • Blog Post: From MSI to WiX, Part 8 - Major Upgrade

    The main page for the series is here . Introduction A typical Major Upgrade removes a previous version of an application and installs a new version. This blog will guide you through the process of creating Major Upgrade . Source code for RTM version Let's create a C# solution with...
  • Blog Post: From MSI to WiX, Part 11 - Windows Installer Automation Interface, Part 1

    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: Getting information about installed products...
  • Blog Post: From MSI to WiX, Part 1 - Required properties

    The main page for the series is here . Русская версия здесь . Introduction Today I will start a series of posts about creating an MSI installation package using WiX. The goal here is to show what is omitted from the WiX documentation and explain not just what needs to be done in WiX, but...