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

Tagged Content List
  • 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 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 = " http://schemas.microsoft.com/wix/2006/wi " xmlns:util = " http://schemas.microsoft.com...
  • 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: 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: 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...
  • 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: Как сохранить значения свойств использовавшихся при начальной установке

    English version is here . Один из наиболее часто задаваемых вопросов - как сохранить значение свойства, которое было присвоено свойству во время инсталлирования программы (присвоенное либо через параметер в командной строке или через пользовательский интерфейс как, например, INSTALLLOCATION). ...
  • Blog Post: Вопросы и ответы

    Здесь будут собраны ответы на вопросы, заданные на wix-users mailing list: Можно ли использовать данные, полученные при использовании RegistrySearch в RegistryValue Как сохранить значения свойств (properties) использовавшихся при начальной установке
  • Blog Post: 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...
  • Blog Post: Is it possible to use RegistrySearch result in RegistryValue?

    Русская версия здесь . 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" Root="HKLM" Key="somekey" Name="somename...
  • 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 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 4 - Features and Components

    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 zero or more components. Components can be shared...
  • 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 17 - Windows Installer Automation Interface, Part 2

    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 Set Installer = Wscript.CreateObject( "WindowsInstaller...
  • 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 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: Англо-русский словарь терминологии по инсталляции программ

    Этот словарь служит двум целям: Поможет мне с написанием русскоязычных статей; Объяснит терминологию тем, кто только начинает. Если знаете, как перевести любой из терминов - шлите emails. Также, к моему стыду, я видел (и уже давно забыл - когда) только Windows 3.1 русифицированную. Поэтому...
  • Blog Post: От MSI к WiX, часть 2 - Поддержка "Установка и удаление программ"

    Главная страница серии здесь . English version of this page is here . Добавление поддержки для "Установка и удаление программ" Группа свойств, хранящихся в таблице Property , хранит информацию, которую операционная система отображает в панели управления "Установка и удаление программ"...
  • 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: 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: From MSI to WiX, Part 13 - Installable Items - Environment variable

    The main page for the series is here . Introduction I am beginning a mini-series on installable items. Today's topic - environment variables. MSI story In order to install an environment variable we need to add a record into the Environment table. Here are the fields we need to fill...
  • 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: 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: Conditions for different types of installation

    Content Detecting the installation state Detecting the type of the maintenace installation Detecting the installation state Use Installed property to determine if product is installed per-machine or for the current user. Keep in mind that the product can be installed for a different...
Page 1 of 2 (42 items) 12