How To: Install a Windows service
To install a Windows service, use the ServiceInstall element. Other configuration can be made using the ServiceControl element and the ServiceConfig element from WixUtilExtension.
Step 1: Install the service
The ServiceInstall element contains the basic information about the service to install. This element should be the child of a Component element whose key path is a sibling File element that specifies the service executable file.
Tip: to specify a system account, such as LocalService or NetworkService, use the prefix NT AUTHORITY . For example, use NT AUTHORITY\LocalService as the Account attribute value to run the service under this account.
Step 2: Configure the service (optional)
Using the util:ServiceConfig element from WixUtilExtension, you can configure how the service behaves if it fails. To use it, add WixUtilExtension to your project, add the the util namespace to your WiX authoring, and prefix the element name with the util prefix:
Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> . ServiceInstall> util:ServiceConfig FirstFailureActionType="restart" SecondFailureActionType="restart" ThirdFailureActionType="restart" /> ServiceInstall>
Properly installing WiX Toolset 4.0.2
I installed WiX 4.0.2 using dotnet tool install —global wix this installs WiX to %USERPROFILE%\.dotnet\tools\.store\wix\4.0.2\wix\4.0.2\tools\net6.0\any inside this folder, there’s no Wix*Extension.dll, no candle.exe, no light.exe (candle.exe and light.exe are no where to be found on the PC in fact) I can only build basic packages which call for no extensions how do I install the FULL WiX Toolset with extensions included, and candle.exe / light.exe?
asked Oct 20, 2023 at 21:18
Frank Zyna Frank Zyna
19 3 3 bronze badges
Candle & Light [and most of the ‘old’ WiX tools] are gone from WiX v4.x . you should see Wix.exe on your system. Have you tried downloading the nuget package?
Создание инсталлятора с помощью WiX
Для начала — что такое WiX? Технология WiX (Windows Installer XML) представляет собой набор инструментов и спецификаций упрощающих процесс создания дистрибутивов на базе MSI (Microsoft Installer). Если объяснять проще то это обертка вокруг MSI с человеческим лицом.
На мой взгляд изучать проще всего на простых примерах. В данной статье я приведу пример простейшего инсталлятора.
Для начала поставим условия задачи — необходимо создать установочный дистрибутив, который будет содержать следующие диалоги:
Приветствие
Лицензионное соглашение
Выбор директории
Начало установки
Для создания дистрибутива нам понадобится сам WiX, последнюю версию которого всегда можно скачать на Source Forge. На данный момент последняя версия 3.5.0828.0.
Необходимо скачать и установить:
1. ProjectAggregator2.msi — нужен, для того, чтобы установить Votive (находится внутри дистрибутива номер 2). Который, в свою очередь, является дополнением для Visual Studio, облегчающим процесс работы с WiX (подсветка синтаксиса, IntelliSense).
2. Wix35.msi или Wix35_x64.msi (в зависимости от платформы)
3. Русский языковой файл
Итак, скачали, установили, запускаем Visual Studio. Меню File -> New Project, если все установлено правильно — появился новый раздел Windows Installer XML. Выбираем шаблон проекта Setup Project, вводим название проекта (я оставил как есть SetupProject1).
Проект будет состоять из одного файла Product.wxs с ним мы и будем работать. В моем случае файл выглядел следующим образом:
* This source code was highlighted with Source Code Highlighter .
Для начала настроим внешний вид и добавим поддержку русского языка.
Начнем с добавления русского языка. Для этого:
1. В ключе Product изменяем 1033 на 1049
2. В свойствах проекта (правой клавишей по названию проекта в Solution Explorer -> Properties), закладка Build, в поле Cultures to build вставляем ru-RU
3. Добавляем к проекту (правой клавишей по названию проекта в Solution Explorer -> Add -> Existing Item) файл WixUI_ru-ru.wxl (из архива WixUI_ru-ru.v3.zip)
В сгенерированном проекте нет ни одного диалогового окна. Существуют два варинта добавления диалоговых окон — создавать самостоятельно, либо воспользоваться готовым набором диалоговых окон.
Мы пойдем вторым путем, начинать знакомство лучше с простого. Для этого необходимо добавить ссылку на WixUIExtension.dll (правой клавишей по названию проекта в Solution Explorer -> Add Reference — открываем папку, в которую был установлен WiX, подкаталог bin)
Ссылку добавили, указываем какой набор мы будем использовать, в конце раздела Product добавим
* This source code was highlighted with Source Code Highlighter .
WixVariable — указывает на путь к файлу лицензии (речи о нем пока не шло, добавили сразу, чтобы два раза не ходить).
WixUI_InstallDir — готовый набор диалоговых окон. Данный набор включает все необходимые нам диалоги. Помимо него так же существуют наборы WixUI_Advanced, WixUI_Mondo, WixUI_FeatureTree, WixUI_InstallDir, WixUI_Minimal.
Приготовления закончены, можно приступать к редактированию файла установки. Для начала посмотрим, что нам нагенерила студия:
Ключ Product — описывает свойства продукта.
Id — идентификатор продукта, уникальный GUID.
Name — название продукта
Language — язык пакета установки
Version — версия продукта
Manufacturer — производитель
UpgradeCode — уникальный GUID
Чтобы упростить себе жизнь определим некоторые переменные. Для чего — название продукта, например, не раз может встречаться в скрипте, если нам захочется его изменить придется искать его по всему скрипту и менять на новое. Чтобы избежать этого определим переменную, которая будет содержать название продукта и, в случае необходимости, будем менять только ее. Над разделом Product добавим:
* This source code was highlighted with Source Code Highlighter .
Теперь заменим значение параметров ключа Product на переменные:
* This source code was highlighted with Source Code Highlighter .
Определимся теперь с тем куда мы будем устанавливать наш продукт.
Ключ Directory — определяет путь для установки.
Directory корневой элемент для всех папок, которые будут использоваться для установки проекта.
Directory папка Program Files (на что указывает
Directory папка с именем SetupProject1 в папке Program Files. Заменим сразу Name=«SetupProject1» на Name=»$(var.ProductName)»
Добавим файлы в пакет установки. Для этого сначала добавим устанавливаемые компоненты. Следуя совету «Remove the comments around this Component» уберем комментарии с Component внутри целевой папки и добавим туда, например, калькулятор.
* This source code was highlighted with Source Code Highlighter .
Установка компонента невозможна без включения его в одну из Feature (если честно не уверен как в данном случае можно перевести этот термин на русский язык). Этот элемент может быть использован когда нам необходимо дать пользователю возможность выбора, что устанавливать, а что нет. В условиях нашей задачи ничего не говорилось о возможности выбора, но несмотря на это нам необходимо привязать описанный Component к одной единственной Feature:
* This source code was highlighted with Source Code Highlighter .
Осталось добавить ярлык в меню Пуск.
Сначала укажем, что мы собираемся работать с папкой меню Пуск и хотим там создать папку с именем нашей программы, содержащую ярлык на калькулятор.
В раздел Directory где-нибудь в конце добавляем:
* This source code was highlighted with Source Code Highlighter .
Начинаем разбираться:
Directory — указывает на директорию, в которой содержатся ярлыки меню Пуск.
Directory — папка нашей программы в меню Пуск
Component — компонент, содержащий ярлык (не забыть включить его в Feature)
Shortcut — собственно ярлык к калькулятору
Финальная версия файла должна выглядеть так:
* This source code was highlighted with Source Code Highlighter .
Делаем Build, запускаем, проверяем результат.
WiX Toolset
The most powerful set of tools available to create your Windows installation experience.
Documentation
There are lots of ways to learn about the WiX toolset.
Download
You can download the WiX toolset for free.
Bugs
If you find a bug, let us know so we can fix it.
About the WiX toolset
The WiX toolset lets developers create installers for Windows Installer, the Windows installation engine.
- The core of WiX is a set of build tools that build Windows Installer packages using the same build concepts as the rest of your product: source code is compiled and then linked to create executables; in this case .exe setup bundles, .msi installation packages, .msm merge modules, and .msp patches. The WiX command-line build tools work with any automated build system. Also, MSBuild is supported from the command line, Visual Studio, and Team Build.
- WiX includes several extensions that offer functionality beyond that of Windows Installer. For example, WiX can install IIS web sites, create SQL Server databases, and register exceptions in the Windows Firewall, among others.
- With Burn, the WiX bootstrapper, you can create setup bundles that install prerequisites like the .NET Framework and other runtimes along with your own product. Burn lets you download packages or combine them into a single downloadable .exe.
- The WiX SDK includes managed and native libraries that make it easier to write code that works with Windows Installer, including custom actions in both C# and C++.
Recent news
The following blogs may have additional news about the progress of the WiX toolset:
WiX Toolset v5.0.0 available
WiX Toolset security releases available
WiX Toolset v5.0.0-rc.1 available
WiX Toolset v4.0.4 and v3.14 available
WiX Toolset v4.0.2 available
Other sources of news
The following blogs may have additional news about the progress of the WiX toolset:
- Rob Mensching
- Bob Arnson
- FireGiant’s Setup Matters
- Support provided by