2.2. СОЗДАНИЕ ПАКЕТА УСТАНОВЩИКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МАЙКРОСОФТ (MSI) ДЛЯ УСТАНОВКИ ПРОГРАММ СТОРОННИХ ПРОИЗВОДИТЕЛЕЙ
Цель работы
Разработать установочный пакет в формате MSI, позволяющий автоматизированно и централизованно устанавливать стороннее приложение в корпоративной среде.
Инструментарий
· WiX Toolset v3.11 — набор компиляторов для создания MSI из XML-описаний.
· Windows SDK (для candle.exe и light.exe).
· Тестовое приложение — утилита для ведения заметок (Notepad++ или самописное).
Этапы выполнения
1. Установка WiX Toolset и добавление путей к исполняемым файлам в PATH.
2. Создание файла продукта Product.wxs:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
Name="TestApp"
Language="1049"
Version="1.0.0.0"
Manufacturer="Company"
UpgradeCode="12345678-1234-1234-1234-123456789012">
<Package InstallerVersion="200"
Compressed="yes"
InstallScope="perMachine" />
<Media Id="1" Cabinet="test.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="TestApp">
<Component Id="MainComponent" Guid="*">
<File Id="MainExe" Source="TestApp.exe" KeyPath="yes" />
<File Id="ConfigFile" Source="settings.ini" />
</Component>
</Directory>
</Directory>
<!-- Ярлык на рабочем столе -->
<Directory Id="DesktopFolder" SourceName="Desktop" />
</Directory>
<Feature Id="MainFeature" Title="TestApp" Level="1">
<ComponentRef Id="MainComponent" />
</Feature>
<!-- Создание ярлыка -->
<DirectoryRef Id="DesktopFolder">
<Component Id="DesktopShortcut" Guid="*">
<Shortcut Id="AppShortcut"
Name="TestApp"
Target="[INSTALLFOLDER]TestApp.exe"
WorkingDirectory="INSTALLFOLDER" />
<RegistryValue Root="HKCU"
Key="Software\TestApp"
Name="Installed"
Type="integer"
Value="1"
KeyPath="yes" />
</Component>
</DirectoryRef>
<Feature Id="DesktopFeature" Title="DesktopShortcut" Level="1">
<ComponentRef Id="DesktopShortcut" />
</Feature>
</Product>
</Wix>
```
3. Компиляция:
· candle.exe Product.wxs → создается Product.wixobj.
· light.exe Product.wixobj → создается TestApp.msi.
4. Тестирование:
· Установка на тестовой машине (двойным кликом по MSI).
· Проверка появления файлов в C:\Program Files\TestApp.
· Проверка ярлыка на рабочем столе.
· Удаление через «Панель управления» → программы и компоненты.
5. Логирование установки для отладки:
msiexec /i TestApp.msi /l*v install.log
Результат
Получен готовый MSI-пакет, который можно развертывать через групповые политики (GPO) или SCCM. Пакет поддерживает стандартные параметры командной строки (/quiet, /passive, /uninstall).